jenkins整合postman(二)

本文主要讲诉postman的使用。

目录

一、发送请求

二、变量的使用

三、测试断言

四、构建工作流和批量执行

五、newman命令执行用例

六、newman常用命令


一、发送请求

1、发送JSON请求

(1)在“headers”添加key:Content-Type  , value:application/json

(2)body中的'raw''并设定为JSON,并输入json数据

(3)点击发送请求即可

2、Get请求

3、Post请求

二、变量的使用

postman提供了4种变量类型。

  • 本地变量(Local Variable)

  • 全局变量(Global Variable)

  • 环境变量(Environment Variable)

  • 数据变量(Data Variable)

1、本地变量

本地变量主要是针对单个URL请求设置的变量,作用域只局限在请求范围内。如请求URL:https://postman-echo.com/post,设置两个本地变量(user,passwd)作为参数。请求方式为post。

在Pre-qurest Script中设置本地变量,格式为:

pm.variables.set("变量名称", 变量值);

pm.variables.set("user","yidd");
pm.variables.set("passwd","aeaqaaa");

 

在Params中使用本地变量,引用方式为 {{本地变量名称}}:

 发送请求,以下就是请求结果:

2、全局变量

全局变量是指在所有环境里面,变量值都是一样的,全局变量的作用域是所有请求。
全局变量设置有两种方式:脚本设置和页面设置。

(1)脚本设置也从Pre-qurest Script里设置,格式为:

pm.globals.set("全局变量名称", 变量值)。比如:

 (2)页面设置

点击右上角设置变量的图标,在Global选项菜单点击Edit菜单即可设置全局变量,如下图所示。全局变量的引用方式和环境变量一样。

注意:当环境变量和全局变量名称一样,切换到某个环境时,环境变量会覆盖全局变量。

 

请求结果如下:

 3、环境变量

环境变量指在不同环境,同一个变量值随着环境不同而变化,比如我们上面举例场景就可以使用环境变量,当在测试环境时,host值为:dev.postman.com,当切换到生产环境时,host值变为:postman-echo.com。

 环境变量设置:在postman界面点击右上角眼睛图标,即可开始设置环境变量和全局变量。环境变量设置过程如下图所示:可以设置两种环境dev和release,dev是开发测试环境;release是正式生产的生产环境。host环境变量,根据不同的环境值而改变。

 

 

 使用方法:

先在右上方选择环境变量:

然后在用例中引用变量

 

4、数据驱动

有时针对一个接口需要测试很多不同的参数,如果每次一个个去修改参数值来进行测试这样效率肯定比较低下。因此需要每次迭代执行传入不同的参数进行测试,那么需要导入外部数据文件进行参数化,也就是数据驱动。

数据变量使用之前要在pre-request script中定义过,可以定义为全局变量或环境变量。

示例:有一个接口,是json请求,需要迭代不同的用户名、密码,需要校验每次返回的Json报文data字段中包含该用户名和密码。

(1)准备一个json数据文件dataJson.json,数据内容如下:

[{
    "username":"Jack",
    "passwd":"6666"
},{
    "username":"Bob",
    "passwd":"5555"
},{
    "username":"Marry",
    "passwd":"8888"
}]

(2)在Pre-request脚本中设置所需的变量来对应json文件中的字段:

pm.globals.set("username", data.username);
pm.globals.set("passord",  data.passwd);

(3)设置json请求体,Body选择raw,内容如下:

{
   "username":{{username}},
   "passwd": {{passord}}
}

另外别忘了设置请求头。

(4)设置用例的检查点:

点击Tests,编辑脚本,这里主要是验证返回的json数据中,data字段是否包含用户名、密码:

username = pm.globals.get("username");
passord = pm.globals.get("passord");
console.log("username: " + username);
console.log("passord: " + passord);
pm.test("验证data字段中含有username", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.data).to.include(username);
});
pm.test("验证data字段中含有passord", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.data).to.include(passord);
});

 

(5)保存之后,点击Runner:

 

(6) 选择用例集、数据文件:

这样就可以看到运行结果 了 :

 

三、测试断言

postman可以对接口请求响应进行校验,在Tests里面编写测试断言即可,所用的语法是js。为方便编写测试脚本,postman在Tests的右侧有常用的校验方法,点击就可以插入到脚本中:

接口常用的检验点有以下这些:

1、检查状态码

pm.test("检查状态码是否为200", function () {
    pm.response.to.have.status(200);
});

2、验证返回的报文是否是json格式:

var schema = {};

var jsonData = pm.response.json();
pm.test('Schema is valid', function() {
  pm.expect(tv4.validate(jsonData, schema)).to.be.true;
});

tv4为Postman引入的外部库,想了解的可以去看官方文档

3、验证返回的json报文字段的数量是否正确:

var jsonData = pm.response.json();
// 获取json的字段数量
var len = Object.keys(jsonData).length;
pm.test("返参的字段数是否为7", function () {
    var jsonData = pm.response.json();
    pm.expect(len).to.eql(7);
});

4、验证返回body内是否含有某个值

pm.test("Body matches string", function () {
    pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});

5、验证某个字段是否是一个预期的值

pm.test("Your test name", function () {
    var jsonData = pm.response.json();
    // 验证返回的json报文value字段的值是100
    pm.expect(jsonData.value).to.eql(100);
});

6、验证返回头类型

pm.test("Content-Type is present", function () {
    pm.response.to.have.header("Content-Type");
});

四、构建工作流和批量执行

再使用"Collection Runner"的时候,集合中的请求执行顺序就是在请求Collection中的显示排列顺序。但是,有的时候我们不希望按照这样的方式去执行,可能是执行完第个请求,再去执行第五个请求,然后再去执行第二个请求这样的顺序;那么在"Collection Runner"中如何去构建不同的执行顺序呢?有两种方法:

1、在集合中拖动顺序

2、通过脚本设置。每次去拖动比较麻烦,特别是当请求比较多的时候。

在请求Tests脚本中设置下一个要执行的用例是Request 3:

postman.setNextRequest('Request 3')

批量执行,也就是用Collection Runner 来批量运行,参考前面数据驱动的部分。

五、newman命令执行用例

如果想把测试脚本集成到CI平台,或者在非图形界面的系统环境下测试,就需要用到Newman。

1、将postman的测试用例集合导出到桌面新建文件夹pmtest:

2、导出环境变量到同一个文件夹pmtest中

点击设置

点击下载

 

3、导出全局变量

 

 4、把用例中用到的数据文件也放到同一个文件夹中

注意:如果导出的文件夹名称中有空格,请删掉,否则执行newman命令时会报错。

5、在该文件夹右击进入命令,执行以下命令:

newman run 接口测试.postman_collection.json -e release环境.postman_environment.json -g MyWorkspace.postman_globals.json -d dataJson.json -r html

六、newman常用命令

1、运行一个集合

newman run 集合名
newman run url地址

2、-e,–environment 指定环境文件路径或者url
  -e的用法是如果我们的集合设置到环境变量,那么但是运行集合文件是报错的,需要使用-e指定才能运行集合,比如运行测试搜索集合

newman run d:\test.postman_collection.json -e d:\test.postman_environment.json

3、-g,–globals 指定全局变量的文件地址或url 用法如-e

4、-d,—-iteration-data 指定用于迭代的数据源文件路径

newman run d:\test.postman_collection.json -e d:\test.postman_environment.json -d d:\testdata.csv

5、-n,–iteration-count 指定迭代次数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值