免费代理ip的网站,乐清门户网,泉州网站的建设,wordpress主题换图片不显示seldom 是我一直在维护的自动化测试框架。目前GitHub已经 500 star。
最近在项目中使用Seldom poium 编写自动化测试用例。接下来#xff0c;我就分享一些使用技巧。
如何参数化测试用例 网站的首页#xff0c;如上面的导航。于是#xff0c;开始利用poium编写元素定位。…
seldom 是我一直在维护的自动化测试框架。目前GitHub已经 500 star。
最近在项目中使用Seldom poium 编写自动化测试用例。接下来我就分享一些使用技巧。
如何参数化测试用例 网站的首页如上面的导航。于是开始利用poium编写元素定位。
from poium import Page, Elementclass Homepage(Page):destination_hk Element(cass#id_2ext, describe探索目的地-香港)destination_macau Element(css#id_3ext, describe探索目的地-澳门)destination_singapore Element(css#6ext, describe探索目的地-新加坡)...写着写着我发现这样的用例不可维护因为这里的导航是由后台配置出来的一个导航热门目的地不是固定的随国家、语言变化。
修改用例如下
# page
from poium import Page, Elementsclass Homepage(Page):destination_all Elements(xpath//div/div/, describe所有热门城市)# case
import seldomclass TestHomeNav(seldom.TestCase):导航def start(self):self.open(https://www.shop.com/)self.hp HomePageCN(self.driver)def test_nva_search(self):# 遍历城市列表点击每一个城市destinations self.hp.destination_allfor elem in destinations:elem.click()那新的问题来了这么写就一条用例而且假设其中一个城市配置链接错误或失效整个用例失败我们很难排查是哪个城市的问题而且也不利于用例统计。
最后改进之后的方案。
# page
from poium import Page, Elementsclass Homepage(Page):destination_all Elements(xpath//div/div/, describe所有热门城市)# common
def get_destinations_data(url):获得热门目的地的 数量:return: [(),()]hp HomePage(Seldom.driver)hp.open(url)destinations hp.destination_alldestinations_data []for i, elem in enumerate(destinations):destinations_data.append((elem.text, i))return destinations_data# case
import seldom
from seldom import database_url https://www.shop.com/class TestHomeNav(seldom.TestCase):导航def start(self):self.open(base_url)self.hp HomePage(self.driver)data(get_destinations_data(base_url))def test_nva_search(self, name, i):# 探索目的地print(city name--, name)destinations self.hp.destination_allcity_name destinations[i].textdestinations[i].click()self.assertText(city_name)这种方案有两个好处。
城市列表变动不会影响用例的执行。每个城市统计一条用例。 seldom基于unittest的参数化非常简单和强大这也是我没有转投pytest的最主要原因之一。 pytest的参数化pytest.mark.parametrize()确实不好用这一点不接受反驳。 用例依赖 这一条用例是我要自动化点击搜索历史。搜索历史搜索过才会产生的数据。
# case
import seldom
from seldom import data
from seldom import dependclass TestHomeSearch(seldom.TestCase):搜索def start(self):self.open(base_url)self.hp HomePage(self.driver)data([(case1, 迪士尼),(case2, 双月湾),(case3, 上海),])def test_search_a_keyword(self, name, keyword):搜索活动、城市print(case name--, name)self.hp.search_input.send_keys(keyword)self.hp.search_button.click()self.assertText(f以下是与“{keyword}”相关的体验)depend(test_search_a_keyword)def test_search_history(self):搜索点击搜索历史history self.hp.search_historykeyword history[0].texthistory[0].click()self.assertText(f以下是与“{keyword}”相关的体验)搜索再次用到了参数化。通过depend() 装饰器设置依赖上面的用例test_search_a_keyword当被依赖的用例失败时该用例直接跳过。
UI 接口自动化混搭验证
Seldom既支持Web UI自动化又支持接口。 例如上面的活动卡片如何验证图片是否显示。
截图对比 提前准备一张对比的图片太麻烦存在对比偏差活动有被替换的风险。自动截图人工检查截图这不叫完全自动化。跑自动化的时候测试人员盯着看... 这就很离谱了。
img srchttps://gimg2.baidu.com/i/eg_tulip.jpg alt雪山 /先来看看一张图片的定义。如果一张图片无法显示。
html 代码写错例如 src 写成 scr。图片链接失效。
第一种情况概率很低而且很容易发现而且是必现。第二种情况就比较麻烦了可能图片链接一开始是好的可能因为图片服务器问题导致图片丢失。
好了分析完图片不可见的情况。那么就可以通过验证图片请求来保证图片是可见的。
import seldomclass TestHomeActivity(seldom.TestCase):def start(self):self.open(base_url)self.hp HomePageCN(self.driver)def test_hot_sale_activity(self):检查活动活动 图片img self.hp.activity_img.get_attribute(src)self.get(urlimg) # 调用图片链接self.assertStatusCode(200) # 断言活动图片是否可以访问通过get_attribute() 获取元素的src 图片链接然后直接self.get()调用图片地址如果返回200 说明图片可访问。
是不是web UI和 接口自动化无缝连接。
最后
https://github.com/SeldomQA/seldom
提供一下GitHub地址如果有GitHub帐号欢迎 star最近在使用过程中也在更加积极的完善功能和修复bug。如果你正在开展自动化测试不妨试试Seldom他降低了你自己搭建自动化测试项目的成本提高你编写和维护用例的速度。
行动吧在路上总比一直观望的要好未来的你肯定会感 谢现在拼搏的自己如果想学习提升找不到资料没人答疑解惑时请及时加入扣群 320231853里面有各种软件测试开发资料和技术可以一起交流学习哦。
最后感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走 这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴上万个测试工程师们走过最艰难的路程希望也能帮助到你