第九期_接口测试框架 Requests_20190713

基本概念

Mock

  • map remote:切换线上环境与备份环境,或者内部测试环境 Fake方式 不同的请求 → 不同的结果
  • map local + mirror:把线上的请求变成本地文件请求 Stub 不同的请求->相同的结果
  • reverse proxy:把线上的请求 Proxy模式
  • rewrite:修改行为 mock

课间作业

  • 实现个人上市,股价9999.99,或者更高,把修改成功的截图贴到帖子里。本质上这是一个常用的测试场景,修改接口的返回,去测试app端的展示逻辑
  • 加分项:修改不要波及所有的股票

中场休息

15:50回来

获取接口数据

  • 抓包:研发没有完善的文档,产品已经上线,或者有了可运行的环境。也可以用来自动生成用例。
  • 接口文档:研发有完善的文档,可以完成基础用例。但是仍然需要抓包了解业务逻辑。
  • 代码级别的自动生成文档方案:Swagger

接口测试工具

  • curl:http请求描述和模拟的工具标准,所有的工具都会提供curl命令转换的功能
  • postman:交互很强,但是不适合自动化,距离真正的框架还有很大差距。
  • soapui:设计不合理,但是理念很先进。
  • jmeter:但是他的用例管理是针对性能场景的,并不符合标准的用例管理规范,管理case不方便的。jmeter+junit这个组合完善好才可以。
  • requests:推荐
  • httprunner:社区开源框架

接口测试框架

requests的基本使用

课间作业2

雪球的json接口测试, 用request编写一个test_xueqiu_quote测试用例,发送如下请求,并打印格式化pretty print的结果,写完把代码贴到回复里

curl -k -H 'Cookie: xq_a_token=5806a70c6bc5d5fb2b00978aeb1895532fffe502;u=3446260779' -H 'User-Agent: Xueqiu Android 11.19' -H 'Accept-Language: en-US,en;q=0.8,zh-CN;q=0.6,zh;q=0.4' -H 'Host: stock.xueqiu.com' --compressed 'https://101.201.175.228/v5/stock/portfolio/stock/list.json?_t=1UNKNOWNc60715cb4a61425b311034a49f4aa024.3446260779.1563002521424.1563005246620&_s=8c6b2d&category=1&pid=-1&size=10000&x=1.3&page=1'
{"data":{"pid":-1,"category":1,"stocks":[{"symbol":"FB","name":"Facebook","type":0,"remark":"","exchange":"NASDAQ","created":1562403591109},{"symbol":"LFC","name":"中国人寿","type":0,"remark":"","exchange":"NYSE","created":1562403591109},{"symbol":"SH600036","name":"XD招商银","type":11,"remark":"","exchange":"SH","created":1562403591109},{"symbol":"SH601155","name":"新城控股","type":11,"remark":"","exchange":"SH","created":1562403591109},{"symbol":"SZ000002","name":"万科A","type":11,"remark":"","exchange":"SZ","created":1562403591109},{"symbol":"SZ000858","name":"五粮液","type":11,"remark":"","exchange":"SZ","created":1562403591109}]},"error_code":0,"error_description":""}

课后作业