基于 Unittest 框架,使用 Python+Selenium+Webdriver 的 WebUI 自动化测试项目应用实例(附源码)
1、项目背景
测试背景:在业务系统的 web 页面,有一个分辨率设置功能,而这个功能是自定义的一个区间,用户可以设置分辨率 800600 到 20482048,
共计 1809801 个分辨率,如果人工去进行遍历的话,估计得用半年时间,非常费劲
解决方案:使用 webUI 自动化控制分辨率功能的输入,其中每次输入都不重复,遍历所有的分辨率
遍历数据解决:如果在脚本中唯一取值,直接由代码生成需要的数据的话,效率非常慢;所以把 1809801 个分辨率数据直接在 txt 文本中写入,只需要打开一次,然后每次从 txt 取值,直到取完为止
业务 UI 图:
2、框架环境
Python 3.5
Python 的 sendmail、xlrd、HTMLtestRuner、CSV、ConfigParser、Json 模块
Selenium
Pycharm
3、业务实现思路
设置界面,修改输入源的分辨率的高和宽,以及刷新率,进行应用
设备界面,查看对应输入源的分辨率信息
把设置界面输入的分辨率信息和设备界面的显卡返回的分辨率信息进行对比,判断设置是否 OK
4、业务结果判断
把设置界面输入的分辨率信息和设备界面的显卡返回的分辨率信息进行对比,判断设置是否 OK,主要有两种情况:
超出带宽:在脚本中加入判断信息,如果输入的值按照计算公式大于 165M 带宽,才判断为超出带宽
返回异常:输入的和返回的值不一致,这种情况一般保存数据,具体分析,如下示例:
5、数据处理
对于运行的结果数据处理,目前支持三种方式:
把测试用例结果,通过 HtmlTestRunner.py 库封装成测试用例集,然后通过 SendMail.py 库,发送邮件给项目组成员。示例:
使用 Eclipse 开发平台,把测试结果的 Console,保存到 log 中,实时抓取运行过程和结果数据(这个可以忽略,后续直接在代码中加 log)
把测试结果,直接保存到 config 的配置文件中,直接查看
6、框架说明
7、操作说明
打开 all_test,py 修改接收邮箱地址和保存保存路径
打开 tools 中的 sendMail.py 修改发送者的邮箱地址
在 Utils 中的 Settings3 写业务模块的功能(Settings1 和 Settings2 是多余的)
在 test_case 中 test_Settings_Custom_Resolution.py 写测试用例
执行 all_test.py
8、数据存储效果
9、源码地址
版权声明: 本文为 InfoQ 作者【虫无涯】的原创文章。
原文链接:【http://xie.infoq.cn/article/27719af19254a9d19f9dc87c7】。文章转载请联系作者。
评论