接口测试 使用 newman (postman 插件) 在命令行下进行接口测试-Part I

bobjhero · December 29, 2016 · Last by rockyrock replied at January 13, 2017 · 1525 hits

本篇简介

做过接口测试的都应该知道,接口测试工作不仅仅是在接口开发完成时测试通过即可,而是需要在项目的持续迭代的过程中也要持续测试的。在持续开发迭代,接口测试持续进行的过程中,接口的自动化测试环节就是比不可少了。
那么,由此即可以引出接口自动化测试的实现方式。实现方式会有多种多样,比如说已经比较成熟的第三方 “商业版” 测试工具 SoupUI、postman# 第一次接触是通过 chrome 插件,现在已经独立为单独的 app 了 #、chrome 插件 DHC,但是今天我要重点说的是 postman,哦,不,是 postman 的插件–newman。

主角 -- newman

官方简介:Command-line companion utility for Postman
翻译成人话就是一款可以在命令行执行 postman 进行接口测试的插件

一本正经的话说八道

再往下看的前提是你已经使用过 postman,并且知道如何编写 api 的 assert 是最好的,且会导出 collection

  • 安装 newman 点我下载 # 前提是你已经安装过 nodejs,关于如果安装 nodejs 请自行解决,在此不再展开 #
  • 执行测试
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 等)、接口返回数据大小、完成请求所用时间,如果测试的接口有失败的情况下也会列出来。

  • 输出报告文件
    • 支持报告格式:html,cli,json,junit
    • 实现方式:newman run Documents/codecard.postman_collection -r junit,html --reporter-html-export ~/Documents/cardcode.html --reporter-junit-export ~/Documents/dedao_cardcode.xml
    • 参数解释: -r -reporter-html-export 这两个文件就是生成的 html、junit 报告,html 可以直接在浏览器中进行展示,xml 文件即 junit 报告可以进行二次处理,到时候 Part II 会说怎么用!

最后

到目前为止,postman 进行 API 测试、导出 collection、使用 newman 在命令行下执行测试算是告一段落。
至于为啥要在命令行下执行测试,就是接下来的重头戏了,那就是接口测试持续集成。
持续集成我打算采用 jenkins(这是我唯一用过的一款 CI 工具我会告诉你吗),会在 Part II 中进行详细陈述,先这么着吧,改天再见~

共收到 1 条回复 时间 点赞

期待第二部分!

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

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up