接口测试 客户端 http 接口测试应该如何测试

keen · 2015年12月14日 · 最后由 yiran酱 回复于 2018年10月11日 · 3460 次阅读

最近看了很多接口测试 的帖子,都是拼接 url、请求方法、参数调用的 http 请求来进行接口测试,很少有客户端 (App 端)的接口测试方法,目前是采用抓包/开发同学打出 log 来验证请求是否发送和响应成功、返回值抓取,期望有种自动化且可易用的方法来测试。

接口测试包括

1、服务端 HTTP 接口测试<测试服务是否按接口文档完成,服务端接收请求/响应结果都正常)
1)拼接 url、请求方法、参数调用的组合测试

已使用 jmeter 完成

2、客户端 HTTP 接口测试

1)客户端发起请求,服务端响应正常,返回值符合预期
2)检查客户端操作某个功能后,是否发起请求,以及调用接口次数是否正确
3)服务端异常返回值,客户端能否正确处理

第 1、2 个小点目前采用抓包和 log(收集 log,格式化来对比结果) 方式验证

问题:

1)我目前的测试方法有遗漏吗?
2)如何自动化的实现确定真机在做操作 APP 某个功能时,客户端发起了请求/请求发送成功/服务器响应成功/返回值正确?

共收到 13 条回复 时间 点赞

markdown 的 # 号和文字之间留一个空格。我们用的是严格的 markdown ,语法中的空格是不可忽略的。

keen #2 · 2015年12月15日 Author

#1 楼 @chenhengjie123 已按规定修改好,帮忙重新审核下

方案:使用 json-rpc 或 xml-rpc 把 app 上的接口暴露出来,在外部用 HTTP 方式通信,理论支持多种语言自己造轮子,也能用 JMeter 来发请求断言验证。

Appium 采用的也是 RPC 协议 (Remote Procedure Call Protocol),selenium 的 json-rpc。我不知道大家有什么高效的方法来调试 Appium 代码,我的主意就是直接开一个 JMeter 随时发 HTTP 请求来验证一下我当前的操作是否可行(Chrome 的 POSTMAN 插件也可以)。古时候用 monkeyrunner,命令行方式来一步一步调试还是挺方便的。

RPC 方式一般是被我们用来测试 SDK (library) 的,Python 自带 xml-rpc 库,Android 端有 Apache 的 java xml-rpc server,剩下的就简单了。待我有空来详写一篇吧。

在做 UI 自动化测试时,可以抓取到 URL 请求,然后将 URL 请求传入 http 接口服务器进行解析就可以了
先判断接口参数是否符合规范,然后直接在 HTTP 接口服务器进行模拟调用,再判断结构和预期结果是否一致就可以了

#5 楼 @mrqyoung
或者直接用 urllib requests 模块直接写单元,然后 format 参数化进行测试和验证

mark 有学到

—— 来自 TesterHome 官方 安卓客户端

不走 http,直接调用 server 端接口也可以吧

请问楼主,有相应的测试方法了吗?求分享

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册