1. 启动Flask服务
flask的使用:
设置flask启动app的路径(windows下用set,linux用export)
set FLASK_APP=D:\python\HttpRunner-master\tests\api_server.py
flask run
2. 抓包查看HTTP请求和返回的信息
启动flask服务后,可使用Charles抓包。
在浏览器中访问:http://127.0.0.1:5000/ 可看到如下信息
可在\tests\api_server.py文件中查看该服务有哪些api接口。
3. 运行测试用例
现在根据get-token和users两个接口来写测试用例(采用YAML格式)
可examples/quickstart-demo-rev-0.yml中查看
运行测试用例,在终端输入:
ate examples/quickstart-demo-rev-0.yml
Charles抓包可看到信息,发现第二个用例请求users接口返回了403。
查看抓包信息可看到:
虽然get-token接口获得了token,但在users接口中请求使用的token又重新生成了一次。
4. 优化测试用例:关联(correlation)
为了解决上面的问题,需要将第一个接口获取的token传递到第二个接口的请求参数中。
可examples/quickstart-demo-rev-1.yml中查看
运行测试用例,在终端输入:
ate examples/quickstart-demo-rev-1.yml
现在可以看到两个用例都请求成功了
5. 优化测试用例:参数化(parameterization)
可以看到用例中,device_sn仍然是hardcode的,这与真实场景是有差异的。在真实场景中每个用户的device_sn都不一样,sign也是根据其它headers中的参数来生成的。
但测试用例是YAML文档,没有随机生成这些数值的功能。我们可以在httprunner中将python脚本和YAML/JSON格式的测试用例结合起来。(examples/debugtalk.py)
可在quickstart-demo-rev-2.yml中查看优化后的测试用例
6. 优化测试用例:全局config模块
可定义一个config模块,将全局变量和方法定义在这里。比如,像device_sn这样的变量,可能在别的测试用例中也会用到,可以在config中定义。
详见examples/quickstart-demo-rev-3.yml
7. 运行测试用例,生产报告