Selenium测试程序的优化

17 篇文章 2 订阅
13 篇文章 1 订阅

1.异常优化
考虑以下情形。

deftestLogin():
#从Excel文件中读入测试数据,比如:Jerry/123456
#继续后续测试
defteardown():
#从数据库表中删除的读入的数据,比如:Jerry/123456
...

比如测试程序在继续后续测试的时候出现了一个异常,比如元素没有找到,系统会自动退出,而不去执行teardown方法,也就是说数据库中的数据没有得到清除,这样如果下一次仍旧执行这个测试用例,这样就会产生异常,这个异常是刚才没有执行清除数据造成,这时的数据就叫做“脏数据”,为了解决这个问题,可以通过使用Python的try-except来捕获异常,并且将所有的方法封装在一个类中。在util.py中封装一个class类。

1)封装定位API

案例:封装定位API。

deffind_element_by_id(self,driver,mystr):
try:
return driver.find_element_by_id(mystr)
exceptNoSuchElementException:
print("find_element_by_id 没有发现元素"+mystr)

这样如果系统通过by_id方式找不到某个元素,测试程序会抛出“find_element_by_id 没有发现元素"+mystr(mystr即定位的id号)”信息,然后继续下面的程序。调用的时候采用下面的方法。

defsetUp(self):
d = drivers()
self.driver=d.driver
self.fd=findby()
self.fd.implicitly_wait(self.driver,5)
…
deftest_XXX():
self.fd.find_element_by_id(self.driver,"kw").clear()

其他的定位方式也采取同样的方法。

2)封装操作API
案例:封装操作API。

defsend_keys(self,elenment,send_string):
        try:
             elenment.send_keys(send_string)
        except:
              print("send_keys操作失败")

当执行send_keys发生异常,系统抛出“send_keys操作失败”信息,然后继续下面的程序。调用的时候采用下面的方法。

self.fd.send_keys(self.fd.find_element_by_id(self.driver,“kw”),inputstring)

2.Retry优化
UI自动化测试程序的最大问题之一在于由于网络的不稳定,从而造成页面元素不是不存在,而是还没有被调出来(虽然Selenium提供了显隐式等待,实际工程中会发现这两个方法是有缺陷的,并且好些浏览器根本就不支持)。在这里进行如下的优化。

案例:Retry优化。

deffind_element_by_id(self,driver,mystr):
try:
return driver.find_element_by_id(mystr)
except NoSuchElementException:
for i in range(2):
try:
time.sleep(2000)
return driver.find_element_by_id(mystr)
except NoSuchElementException:
print("尝试第"+str(i+1)+"次失败")
print("尝试第3次失败")
print("find_element_by_id 没有发现元素"+mystr)

当程序找不到元素的时候,等待2秒钟,继续获取,如果还是没有取到,继续等待,在这里设置了3次的等待机会,如果没有,则报异常信息。

3.对页面的封装
案例:测试添加用户购物配送地址功能。

最后感谢每一个认真阅读我文章的人,下面这个网盘链接也是我费了几天时间整理的非常全面的,希望也能帮助到有需要的你!

在这里插入图片描述

这些资料,对于想转行做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……

如果你不想一个人野蛮生长,找不到系统的资料,问题得不到帮助,坚持几天便放弃的感受的话,可以点击下方小卡片加入我们群,大家可以一起讨论交流,里面会有各种软件测试资料和技术交流。

敲字不易,如果此文章对你有帮助的话,点个赞收个藏来个关注,给作者一个鼓励。也方便你下次能够快速查找。

自学推荐B站视频:

零基础转行软件测试:自学完软件测试,拿到了字节的测试岗offer,堪称B站最好的视频!

自动化测试进阶:已上岸华为,涨薪20K,2022最适合自学的python自动化测试教程,自己花16800买的,无偿分享

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值