zoukankan      html  css  js  c++  java
  • jenkins+newman+postman实现api自动化

     最近需要用到自动化测试工具,调研加实践发现postman功能很强大呢。

    1.postman自动化脚本实现

    1.1 postman的test使用

    1.1 postman的runner使用

    1.3 postman的延迟

    参考:https://blog.csdn.net/chenyangdream/article/details/104350828

    当前需要单个接口的延迟,而非每个接口都加延迟

    实现如下:

    pm.test("check_result", function () {
    pm.response.to.have.status(200);

    /* 检查实例创建成功,处于active状态 */
    var jsonData = pm.response.json();
    var instance_info = jsonData.Data.Instances[0];

    /* 获取延迟 */
    var delay_10min = pm.environment.get("DELAY_10MIN");

    setTimeout( ()=>{pm.expect(instance_info.DBInstanceStatus).to.eql("ACTIVE");}, delay_10min);

    });

    这里setTimeout的第一个参数()=>{pm.expect(instance_info.DBInstanceStatus).to.eql("ACTIVE");}   就是延迟10min后再执行的

    总结:

    实现方法:

    setTimeout(  ()=>{语句;},  延迟毫秒数);

    如果多个语句都延迟6000ms可以这样写:

    setTimeout( ()=>{语句1; 语句2;语句3;} ,   延迟毫秒数);

    2.postman命令行执行自动化用例

    参考:

    https://www.jianshu.com/p/f1bdfdabed10  

    https://www.cnblogs.com/101718qiong/p/9837781.html

    实践:

    2.1按照指导,先下载好node.js, cnpm, newman

    这个过程比较轻松,查看参考的链接。

    2.2 export导出测试case到test目录

    同样把依赖的环境变量导出到test目录,具体操作查看参考的链接。

    2.3用命令行执行,newman run

    newman run dbaas_param.postman_collection.json -e dbaas_73403574_xianglong.postman_environment.json  -r html

    其中 run后面跟的是测试case,-e后面跟的是环境变量

    -r是生成了html类型的报告。

     

    ⚠️在执行过程中报错:newman: could not find "html" reporter

    原因是没有安装newman的html组件,需要执行命令sudo cnpm install -g newman-reporter-html,安装成功后即可执行newman run

    2.4 测试报告

    在当前目录下生成了Newman文件夹,打开html报告可以看到总的统计结果,以及各接口的执行结果:成功/失败,执行时间。

    使用如下命令,可生成简装版的html报告

    newman run dbaas_param.postman_collection.json -e dbaas_73403574_xianglong.postman_environment.json  -r html 

    简装版的html报告长这个样子:

     

    是不是感觉,报告的结果缺少点高亮效果?

    好吧,然后发现还有精装版的报告,我们来安装一下精装版的组件:

    sudo cnpm install -g newman-reporter-htmlextra

    然后再来跑一遍测试用例:newman run dbaas_param.postman_collection.json -e dbaas_73403574_xianglong.postman_environment.json  -r htmlextra,cli

    哇塞,果然不一样哎,命令跑完,界面出来一个整体效果图:

     我们再打开报告看看吧,好绚,果然是精装版,看得赏心悦目,一目了然呢:

     

     还能点开每个request查看请求参数,和body返回结果,真的好用极了!

    3. postman+newman集成到jenkins

    想用linux搭建postman+jenkins,实现定时跑自动化。

    linux上搭建jenkins,参考:https://www.cnblogs.com/lxs1314/p/8567652.html

    需要先安装java,maven,git

    安装tomcat后,检查tomcat启动,并能够访问web

     

    然后启动jenkins,访问jenkins:

    [root@vm10-0-199-218 security]# cat /root/.jenkins/secrets/initialAdminPassword

    83c641ff4f864f78b558129ccb4265cb

     根据提示,输入密码就好了

    4. 延伸阅读-newman

    诉求:newman跑出来自动化报告的名称,能否自定义?带着这个疑问,我们看看newman是怎么工作的。 

    在环境上查看到newman和node的启动路径一样:

    [root@vm10-0-199-218 node_modules]# which newman
    /home/tools/node-v12.16.2-linux-x64/bin/newman
    [root@vm10-0-199-218 node_modules]# which node
    /home/tools/node-v12.16.2-linux-x64/bin/node

    而且newman安装前,需要先安装node。那就说明newman依赖于node。都是用javascript写的。

    进入到newman的lib目录,可以发现安装的自动化报告的包:newman-reporter-htmlextra

    [root@vm10-0-199-218 node_modules]# ll
    total 16
    drwxr-xr-x 6 1001 1001 4096 Apr 26 21:18 newman
    drwxr-xr-x 7 1001 1001 4096 Apr 26 21:25 newman-reporter-html
    drwxr-xr-x 9 1001 1001 4096 Apr 26 21:26 newman-reporter-htmlextra
    drwxr-xr-x 10 1001 1001 4096 Apr 9 00:59 npm

    进一步在这个包里看看有没有生成html报告的代码,能否找到启发呢。

    最后找到了生成报告的文件:/home/tools/node-v12.16.2-linux-x64/lib/node_modules/newman/lib/run/export-file.js  从这里看到写reporter文件时候,文件名第一个字符串是来自于参数,第二个字符串是生成的时间戳,末尾加上0

    但是没想到怎么可以改写成自定义形式。这个问题先搁浅了。

  • 相关阅读:
    c语言结构体数组引用
    c语言结构体数组定义的三种方式
    如何为SAP WebIDE开发扩展(Extension),并部署到SAP云平台上
    SAP SRM ABAP Webdynpro和CFCA usb key集成的一个原型开发
    使用SAP API portal进行SAP SuccessFactors的API测试
    SAP UI5应用里的页面路由处理
    在SAP WebIDE Database Explorer里操作hdi实例
    如何使用SAP事务码SAT进行UI应用的性能分析
    使用SAP WebIDE进行SAP Cloud Platform Business Application开发
    SAP CRM WebClient UI ON_NEW_FOCUS的用途
  • 原文地址:https://www.cnblogs.com/liurong07/p/12780856.html
Copyright © 2011-2022 走看看