【接口/性能】HttpRunner01-用例编写

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/ 可看到如下信息

【接口/性能】HttpRunner01-用例编写_第1张图片

可在\tests\api_server.py文件中查看该服务有哪些api接口。


3. 运行测试用例

现在根据get-token和users两个接口来写测试用例(采用YAML格式)

可examples/quickstart-demo-rev-0.yml中查看

运行测试用例,在终端输入:

ate examples/quickstart-demo-rev-0.yml

【接口/性能】HttpRunner01-用例编写_第2张图片

Charles抓包可看到信息,发现第二个用例请求users接口返回了403。

查看抓包信息可看到:

虽然get-token接口获得了token,但在users接口中请求使用的token又重新生成了一次。

【接口/性能】HttpRunner01-用例编写_第3张图片
【接口/性能】HttpRunner01-用例编写_第4张图片


4. 优化测试用例:关联(correlation)

为了解决上面的问题,需要将第一个接口获取的token传递到第二个接口的请求参数中。

可examples/quickstart-demo-rev-1.yml中查看

运行测试用例,在终端输入:

ate examples/quickstart-demo-rev-1.yml

现在可以看到两个用例都请求成功了

【接口/性能】HttpRunner01-用例编写_第5张图片

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. 运行测试用例,生产报告

你可能感兴趣的:(【接口/性能】HttpRunner01-用例编写)