【接口/性能】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/ 可看到如下信息

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,798评论 19 139
  • 22年12月更新:个人网站关停,如果仍旧对旧教程有兴趣参考 Github 的markdown内容[https://...
    tangyefei阅读 35,303评论 22 257
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,117评论 6 342
  • 有趣,但是导向很明显,似乎正在走失。 知乎现在还有几个硬伤急需解决。1.长图片【收起】的悬浮按钮迟迟不来,看到最下...
    还在呢死胖纸阅读 3,561评论 0 1
  • 娱乐网站Flavorwire .com今天评选出全球最美的20家书店,仅有4家亚洲书店获选,位在台北市东区的「好样...
    ambere阅读 4,905评论 0 1