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

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

  • 相关阅读:
    CC2640R2F&TI-RTOS 拿到 TI CC2640R2F 开发板 第三件事就是使用 TI-RTOS 创建 一个任务 和 使用 信号量 超时来闪烁 LED灯
    +QFTPOPEN: 603,0 怎么把这样一个字符串中的 603 提取出来给一个 uint32_t 的变量那
    hiero_v2.0的下载安装和使用
    ubuntu server小技巧(不定期更新)
    ubuntu-12.04.1-desktop-x64下JDK环境的安装与配置
    Android开发环境搭建
    《搜索引擎营销》概要整理
    记一次zabbix排错(数据库安装在其它服务器上)
    centos7新增硬盘
    centos7的主机名配置
  • 原文地址:https://www.cnblogs.com/liurong07/p/12780856.html
Copyright © 2011-2022 走看看