做过接口测试的都应该知道,接口测试工作不仅仅是在接口开发完成时测试通过即可,而是需要在项目的持续迭代的过程中也要持续测试的。在持续开发迭代,接口测试持续进行的过程中,接口的自动化测试环节就是比不可少了。
那么,由此即可以引出接口自动化测试的实现方式。实现方式会有多种多样,比如说已经比较成熟的第三方 “商业版” 测试工具 SoupUI、postman# 第一次接触是通过 chrome 插件,现在已经独立为单独的 app 了 #、chrome 插件 DHC,但是今天我要重点说的是 postman,哦,不,是 postman 的插件–newman。
官方简介:Command-line companion utility for Postman
翻译成人话就是一款可以在命令行执行 postman 进行接口测试的插件
再往下看的前提是你已经使用过 postman,并且知道如何编写 api 的 assert 是最好的,且会导出 collection
newman run ~/Documents/CardCode.json
效果如下:
~ newman run Documents/codecard.postman_collection
newman
codecard
→ 登录接口
POST http://{{host}}/cardcode/login [200 OK, 310B, 32ms]
✓ response code is 200
✓ response body contains code is 4
→ 批次解禁
POST http://{{host}}/cardcode/ope/batch/release [200 OK, 186B, 6ms]
→ php创建cdkey接口-兼容
POST http://{{host}}/create/exec [200 OK, 473B, 17ms]
→ php作废cdkey接口-兼容
POST http://{{host}}/nullify/exec [200 OK, 414B, 11ms]
→ php兑换cdkey接口-兼容
POST http://{{host}}/cdkey/exchange [200 OK, 425B, 9ms]
┌─────────────────────────┬──────────┬──────────┐
│ │ executed │ failed │
├─────────────────────────┼──────────┼──────────┤
│ iterations │ 1 │ 0 │
├─────────────────────────┼──────────┼──────────┤
│ requests │ 5 │ 0 │
├─────────────────────────┼──────────┼──────────┤
│ test-scripts │ 1 │ 0 │
├─────────────────────────┼──────────┼──────────┤
│ prerequest-scripts │ 0 │ 0 │
├─────────────────────────┼──────────┼──────────┤
│ assertions │ 2 │ 0 │
├─────────────────────────┴──────────┴──────────┤
│ total run duration: 440ms │
├───────────────────────────────────────────────┤
│ total data received: 410B (approx) │
├───────────────────────────────────────────────┤
│ average response time: 15ms │
└───────────────────────────────────────────────┘
从上述结果中可以看出,运行测试之后,如果运行成功的话,newman 会返回详细的测试结果,包含:接口名称 (含别名)、请求方法 (POST/GET 等)、接口返回数据大小、完成请求所用时间,如果测试的接口有失败的情况下也会列出来。
到目前为止,postman 进行 API 测试、导出 collection、使用 newman 在命令行下执行测试算是告一段落。
至于为啥要在命令行下执行测试,就是接下来的重头戏了,那就是接口测试持续集成。
持续集成我打算采用 jenkins(这是我唯一用过的一款 CI 工具我会告诉你吗),会在 Part II 中进行详细陈述,先这么着吧,改天再见~