文末给大家准备了资料,需要自取!
目前功能
[x]测试前后数据库备份操作,个人理解算数据清洗[x]各接口之间的测试数据依赖[x]自定义扩展函数定义,解决部分加密算法[x]后置sql,结果用于依赖或者断言(select语句只能查出第一条)[x]实际结果可动态提取,与预期结果绝对==[x]可选用例失败重跑机制[x]基于mitmproxy录制接口生成用例文件
重大更新(个人认为)
在之前的一篇自定义函数简单实现方式时,有提醒到语法可能出现冲突,所以在前两天更新时已经统一了语法${}
无论是使用依赖参数还是自定义方法都使用${},为了避免每次使用其他接口返回提取jsonpath表达式在用例中的冗余(或许也提高了些性能,之前版本是会保存整个响应内容的),用例中增加了提取参数来实现形式如下
{
// key -> id 为其他接口使用时的参数变量 用法 ${id}
'id': '$.data.id' // $.data.id 实则为jsonpath表达式 从当前响应中提取id值
}
契机
有同志,希望有个录制功能来减少手写参数的时间
根本
基于mitmproxy,抓包微信小程序使用其提供的扩展API,通过mitmproxy实现代理之后捕获到HTTP/HTTPS请求,并把请求已追加的形式添加到excel中,当录制完成务必使用ctrl+c关闭录制,将生成一个完成的用例数据文件可指定录制包含请求地址的接口
如何录制
前置条件:mitrproxy抓包微信小程序-zy7y-博客园打开本机代理
修改tools ecordinpy中配置抓包请求地址,用例生成路径
正常去使用就行了,当不需要录制的时候在上面这个窗口Ctrl+C停止录制,然后关闭本机代理
录制的用例
因为默认录制的url是完整的url,所以如果直接用这个文件,请把config/confiyaml中的servedev基准地址换成'',因为条件有限没法覆盖测试很多内容这快功能可能会有Bug,目前个人测试了Graphql规范接口的录制,RestFul规范接口录制,不排除其他的无法完整的生成用例文件
需要注意Excel单元格字符数限制问题,Graphql规范接口非常容易出现不可写入的情况,单从业务接口来说应该不容易出现此类问题
执行录制的用例
config/confiyaml修改基准地址dev为'',指定使用录制的用例文件
server:
# 本地接口服务
test: http://127.0.0.1:8888/
# https://space.bilibili.com/283273603 演示项目后端服务来自
# dev: http://www.ysqorz.top:8888/api/private/v1/
dev: ''
# 基准的请求头信息
request_headers: {}
file_path:
test_case: data/case_data1.xls # 指定使用那个用例,这里使用了录制的用例
report: report/
log: log/run{time}.log
....
执行结果
实现源码
文章为作者独立观点,不代表 股票程序化软件自动交易接口观点