今天终于不咋忙了,学习整理一下一直想做却没实现的事儿,这事已经折磨团队半年之久了。因为项目是B端业务的测试,测试过程中需要生产大量的测试数据,而且都是跨多个系统的测试,对于后置流程的测试,这些同学往往要想有一条测试数据,就要自个去一步步的操作前置流程,最关键的是太耗时间,一条数据可能要花掉1个小时左右,加上测试环境经常不问题,1小时没了,结果测试数据也无效了。头疼吧,你也经常遇到吧。好,下面就通过Postman+Newman+node+Jenkins实现自动化测试,顺便生成测试数据吧。

一. Postman里需要干的事

 1. 将需要的测试接口整理到collections里,最好创建成文件夹的形式

 2. 测试用例编写,断言等等都请参考我的postman系列文章

 3. 将需要执行的接口导出存放到本地

    

4. 大部分业务流程都需要进行各种参数化或者接口之间有数据依赖,最好的方式也是通过设置环境变量或者全局变量的方式实现,所以如果设置环境变量,也需要将环境变量导出存放到本地

    

导出后存放到本地:

 二. Node.js

Node.js是干啥的嘞?因为安装newman需要先安装Node.js

安装帮助文档:https://nodejs.org/en/download/package-manager/

下载版本:https://nodejs.org/en/#download

安装并配置环境变量:

  

 三. Newman

Newman是为Postman而生,专门用来运行Postman编写好的脚本。此Newman,非彼Newman,纽曼音乐播放器。

官方帮助文档:https://www.npmjs.com/package/newman#getting-started

Newman安装步骤:

  1. 打开控制台cmd,运行:npm install -g newman
  2. 检测是否安装成功:newman --version
  3. 配置环境变量

    

  4. 因为多数情况下,为了更好的看到测试结果,一般会输出HTML格式的报告,所以也要安装:newman-reporter-html

  newman-reporter-html 安装及用法官方参考文档:https://github.com/postmanlabs/newman-reporter-html#readme

  cmd命令:npm install -g newman-reporter-html

Newman 执行脚本:

  newman run 后面跟上要执行的json文件或者URL(json 和 URL 都由postman导出生成),后面跟一些参数,例如环境变量,测试报告,接口请求超时时间等等。

  常见命令: 
    run 运行newman的命令 
    -e 加载环境变量的数据 
    -g 加载全局变量的数据 
    -n case运行次数,默认运行次数为1次 
    –folder 运行collection中的指定folder 
    --reporters html,junit 指定生成报告的类型 
    其它命令可在github上查看: https://github.com/postmanlabs/newman#configuring-reporters

  本地cmd执行示例命令:

   newman run E:\xiaomada\buyEensure.postman_collection.json -e E:\xiaomada\xiaomada_uat.postman_environment.json --reporters html --reporter-html-export E:\xiaomada\result.html

   

示例解析:

  newman run:运行newman的命令

  E:\xiaomada\buyEensure.postman_collection.json:要运行的接口,就是再postman里导出的collections(这里写全路径哦)

  -e E:\xiaomada\xiaomada_uat.postman_environment.json:要加载的环境变量,也是postman部分导出的数据

  --reporters html  或者 -r html:表示报告结果是html格式

  --reporter-html-export E:\xiaomada\result.html:表示导出报告格式是html的报告 到E:\xiaomada\目录下面,报告名字是result.html

当然,可以根据自己的实际需要生成JSON格式,cli格式,都可以哦,方法如下:

newman run E:\xiaomada\buyEensure.postman_collection.json -e E:\xiaomada\xiaomada_uat.postman_environment.json
--timeout-request 5000 --reporters cli,html,json,junit --reporter-json-export E:\xiaomada\jsonOut.json --reporter-junit-export E:\xiaomada\xmlOut.xml --reporter-html-export E:\xiaomada\htmlOut.html
红色:表示超时5s

所有的目的都是为了解放双手,来吧,Jenkins

四.Jenkins

既然Newman提供了控制台命令执行方式,那么通过Jenkins来构建就容易多了。

  1.安装Jenkins
     官方参考文档:https://jenkins.io/
     下载安装,傻瓜式,按照提示一步步操作就行
  2.搭建Jenkins环境,并新建个自由风格的Job
  3.构建选择Execute Windows batch command,并输入newman 运行命令
    

  4. 构建后操作

    因为我想用html报告展示,所以这里需要用到一个插件:Publish HTML reports,需要先安装后,才能在“构建后操作里选择”

    参考文档:https://wiki.jenkins.io/display/JENKINS/HTML+Publisher+Plugin

    简要整理安装Jenkins插件的方式:

      系统管理-->插件管理-->可选插件Tab-->找到想要的插件,勾选-->点安装按钮

   配置构html reports的步骤:

    (1)先选择Publish HTML reports,上面刚才安装的哦

   (2)选择后,出下图

    

    点击【新增】进行配置,在配置之后,先看下每一项的说明(转自网络)

    

    具体配置项,根据自己的需求来,我只需要下面的配置:

    

提示:我上面填写之后,最终的输出目录为%workspace%/HTMLReport/index.html

注意:这里的路径都不能使用环境变量。

注意2:这个插件不会自动按照上面的路径创建文件夹和文件,所以,一定要确保上面路径上的文件夹和文件已经在工作空间创建好,不然会出现报错。也就是说,这个插件是不创建任何html内容的。

注意3:这个插进不创建任何HTML报告,所以当你看到你的html内容时,会出现空白页。如果想要出现html的报告,可以配合一些xUnit plugin这样插件来生成html报告,然后再上面的路径中指向生成的html文件。

    

第七篇 Postman+Node.js+Newman+Jenkins实现自动化测试的更多相关文章

  1. 学习node.js 第2篇 介绍node.js 安装

    Node.js - 环境安装配置 如果愿意安装设置Node.js环境,需要计算机上提供以下两个软件: 一.文本编辑器 二.Node.js二进制安装包 文本编辑器 这将用来编写程序代码. 一些编辑器包括 ...

  2. 一篇入门Node.js

    目录 1.Node.js 简介 2.Node.js NPM 3.Node.js 模块 4.Node.js 事件 5.Node.js Buffer 6.Node.js 文件系统 7.Node.js St ...

  3. 第二十八篇:关于node.js连接数据库

    好家伙,这个不难,但是也不简单. $ cnpm install mysql 教程里是带美元符的,但是我打的时候加上美元符用不了,所以我就没用美元符了,一样能行. 还有,淘宝镜像,yyds, var m ...

  4. 《唐三学node.js系列》—魂士篇&&三哥初始node.js

    前言 如果你有一定的前端基础,比如 HTML.CSS.JavaScript.jQuery.那么Node.js 能让你以最低的成本快速过渡成为一个全栈工程师(我称这个全栈为伪全栈,我认为的全栈也要精通数 ...

  5. Newman+Jenkins实现接口自动化测试

    目录 一.是什么Newman 二.如何安装 三.如何使用 1.运行本地文件 2.运行在线文件 3.以node.js库运行 4.导出报告 四.命令行测试真实接口 1.导出collection文件 2.导 ...

  6. Node.js学习

    1. 下载 网址:https://nodejs.org/download/ 2. 添加express框架 如下图,运行Node.js command prompt 在命令行中输入:npm instal ...

  7. 在Window IIS中安装运行node.js应用—你疯了吗

    [原文发表地址]Installing and Running node.js applications within IIS on Windows - Are you mad? [原文发表时间]201 ...

  8. 最新Node.js 资源汇总

    Node.js 资源汇总 文档 Node.js 官方文档:http://nodejs.org/api/ Node.js 中文文档:http://nodejs.jsbin.cn/api/ Express ...

  9. PayPal为什么从Java迁移到Node.js

    前言 大家都知道PayPal是另一家迁移到Node.js平台的大型公司,Jeff Harrell的这篇博文 Node.js at PayPal  解释了为什么从Java迁移出来的原因: 开发效率提高一 ...

随机推荐

  1. ROS C++ 规范概要

    一.动机 代码一致才能可读.联调.高效率.高复用.可移植性. 二.命名方式 CamelCased camelCased under_scored ALL_CAPITALS 2.1 Package命名方 ...

  2. PHP扩展功能 ---- 页面静态化(OB缓冲)

    一.入门三部曲 1.什么是页面静态化 百度百科介绍: 静态页面是网页的代码都在页面中,不需要执行asp,php,jsp,.net等程序生成客户端网页代码的网页,静态页面网址中一般不含"?&q ...

  3. Webdriver API中文版

    Webdriver API中文版 1.1   下载selenium2.0的lib包 http://code.google.com/p/selenium/downloads/list 官方UserGui ...

  4. ZXing 二维码应用

    1.导入zxing代码和包 2.下面的类是解析二维码的主要类. package com.gaint.nebula.interaction.ui.zxing; import java.io.IOExce ...

  5. useradd添加用户

    sudo useradd -m -s /bin/bash $user sudo passwd $user linux useradd/userdel 命令 转自:http://hi.baidu.com ...

  6. ./redis-trib.rb 报错:/usr/local/rvm/gems/ruby-2.4.2/gems/redis-4.0.1/lib/redis/client.rb:119:in `call': ERR Slot 0 is already busy (Redis::CommandError)

    错误提示是 slot插槽被占用了(这是 搭建集群前时,以前redis的旧数据和配置信息没有清理干净.) 解决方案是 用redis-cli 登录到每个节点执行  flushall  和 cluster ...

  7. CSS块级元素与行内元素

    CSS块级元素与行内元素 行内元素与块状元素 1.块级元素:可以设置 width, height属性.  行内元素:设置width和height无效,其宽度随其元素的内容(文字或者图片等)的宽度而变化 ...

  8. Java导包后在测试类中执行正确但在Servlet中执行错误报ClassNotFoundException或者ClassDefNotFoundException解决办法

    将原来导的包remove from build path,并复制到Web-root下的lib目录中,再add to build path,

  9. Order by排序

    asc 升序(默认),desc 降序 order by 后面  可以加 列.表达式.别名.序号(从1开始) desc; --表达式 年薪 from emp order by 年薪 desc; --别名 ...

  10. [iOS]被忽略的main函数

    如同任何基于C的应用程序,程序启动的主入口点为iOS应用程序的main函数.在iOS应用程序,main函数的作用是很少的.它的主要工作是控制UIKit framework.因此,你在Xcode中创建任 ...