传统的测试用例需要测试或者开发人员将用户的操作用代码表示出来,通过断言判断是否和预期一致,写测试用例也占用了部分时间,加上版本迭代测试用例的维护成本也较高,于是基于无埋点的需求相结合自动化测试来检测埋点,及时告警,提高准确率和代码质量,为了减少测试用例的开发维护时间,诞生了自动生成测试用例的方案,另外不因为出错而中断代码的执行
测试框架
https://github.com/Tencent/FA…
测试框架使用 FAutoTest, 可以测试小程序,H5, 对比曾经用过的 selenium,代码运行要稳定很多,wait 的时间也都很稳定,对比 phantom 截图像素对比,可以细化测试用例的行为,基于 x5 内核的 driver 能测试微信环境,能覆盖到现业务的使用场景,具体使用,可以参看上述链接
如何自动生成测试用例
1. 首先在后台配置测试用例, 具体思路
获取点击位置 xpath,该测试用例预期文案或者样式
请求接口将测试用例数据配置写入表,并提供接口拉取所有测试用例数据
2. 配置完测试用例,python 请求接口获取测试用例配置的入参 (in 字段),出参(out 字段),,in 里边的字段是入参,url 是点击行为所在的页面,xpath 是点击的位置,out 里边的字段是出参,url 是预期要跳转的页面,xpath 是预期页面的标记位置,带 text 是预期的文案,带 class 是预期的样式,把用户行为尽量拆分成入参,出参能够表达的行为
3.python 请求接口,遍历接口数据生成前缀为 test_case_xxx 的测试用例,自动生成测试用例而不是在一条测试用例里边执行完所有的行为,避免出错而中断代码执行,代码如下
生成测试报告
1)安装 HTMLTestRunner
HTMLTestRunner 是 Python 标准库的 unittest 模块的一个扩展,它可以生成 HTML 的 测试报告。
首先要下 HTMLTestRunner.py 文件,将下载的文件放入…pythonLib 目录下
python2 版下载地址:http://tungwaiyip.info/softwa…
python3 版下载地址:http://pan.baidu.com/s/1dEZQ0pz
2)测试脚本中引入
from HTMLTestRunner import HTMLTestRunner3)定义测试报告的路径,调用 HtmlTestRunner
# 按照一定的格式获取当前的时间
now = time.strftime(“%Y-%m-%d %H_%M_%S”)
# 定义报告存放路径
filename = “../report/” + now + “.html”
fp = open(filename, “wb”)
# 定义测试报告
runner = HTMLTestRunner(stream=fp,
title=” 测试报告 ”,
description=” 测试用例执行情况:”)
runner.run(suite())
4)执行测试脚本,打印测试报告,生成 html,但是测试报告中有乱码,参考网上解决方法:https://testerhome.com/topics…,测试脚本引入代码
import sysreload(sys)sys.setdefaultencoding(‘utf-8’) 修改 HtmlTestRunner.py 中的编码“latin-1”修改为“utf-8”后保存
5)再次执行测试脚本,生成测试报告如下: