水一下postman基础操作。
一、安装
官网下载安装包:https://www.postman.com/downloads/
双击下载的安装文件,将自动安装并打开postman。默认路径为C:\Users\用户名\AppData\Local\Postman下
二、基础操作:
大概的布局结构。
1.get请求
我们来新建一个get请求,请求方式为get,请求地址为www.baidu.com,接口名为请求百度。
网上搜的一个演示网址:http://www.weather.com.cn/data/cityinfo/101190408.html
一般实际测试中我们使用的都是json格式,在没有指定返回内容格式时,默认使用html格式,手动选择改成json格式展示。
其次,我们可以选择默认解析格式为json的,这样我们就不用每次手动选择。我们收到的返回都将默认以json解析。
2. POST请求
post请求一般都要带有数据,也就是body。none代表不带数据,一般不会选择。 form-data:它将表单数据处理为一条字符串并且用分隔符分开,这种方式一般用来上传文件。
x-www-form-urlencoded:自动设置请求头application/x-www-from-urlencoded,并会将表单内的数据转换为键值对;
工具栏View->Show postman console,通过控制台可以观察我们的请求数据,控制台还可以显示我们打印的日志。
raw:可以上传任意类型的文本,比如text、json、xml等,所有填写的数据都会随着请求发送,最常用的就是json格式。选择json会自动帮我们设置 headers 为 application/json。
binary:对应信息头-Content-Type:application/octet-stream,二进制文件提交。
其他方式类似,实际测试中很少遇到主要看接口所需要的请求方式。
导入导出:
我们可以导出json格式文件给其他同事使用我们的请求,同事通过import导入json格式文件导入请求集合。
三、数据处理及环境变量:
实际使用当中我们并不会直接写死请求值,而是以一个key字段请求不同的value值,这个值可能是你是你的环境变量(常用于不同环境的固定值,如相同接口不同环境不同的请求URL),可能是你前一个接口返回值提取到第二个接口使用的值,也可能是存在文件数据库中批量调用的变量。
环境变量:
1. Global---全局2. Enviroment --- 环境变量3. Local --- 局部4. Data ---- 数据
优先级从高到底 Data ---- > Local ---- > Enviroment ---- > Global
如上图,可通过设置相同key不同值来做到切换环境来一键切换不同环境的变量值。
点击眼睛图片edit可以进入到设置环境变量页面。导出json文件给其他同事导入使用环境变量。
使用变量的方法为{{key名}},如下图。使用测试环境变量和全局变量。
除了直接设置环境变量外,我们也可以设置接口的返回值或者我们的请求值为环境变量,这里就要用到postman的脚本也就是Pre-requerst Script和tests。
Pre-requerst Script:是可以让你在请求之前进行操作,这个运行在请求之前,语法使用JavaScript语句。
tests:tests标签功能比较强大,通常用来写测试断言,处理返回值等,它是运行在请求之后,支持JavaScript语法。。测试结果会在tests的tab上面显示一个通过的数量以及对错情况。
我们可以将返回的值设置为环境变量供下一个接口使用
var data = JSON.parse(responseBody);
console.log(data.weatherinfo.city);
pm.environment.set("city", data.weatherinfo.city);
执行以后我们可以看到环境变量中多了一个city作为key的环境变量,然后我们就可以用{{city}}的方式使用这个环境变量了。
将json object转换成字符串的函数JSON.stringify(jsonObject)
。
设置断言,tests["断言名"]中的tests是一个内置对象,等号后面是判断的条件,满足则测试通过不满足则不通过。
检查response的body中是否包含字符串 tests["Body matches string"] = responseBody.has("判断的字符串");
postman.setNextRequest('接口名')
// postman.setNextRequest()是一个带有一个参数的函数,它是接下来要运行的请求的名称或ID。往往用来跳转至某个接口,只在运行该集合时有用,单独运行无效
批量调用及自动化:
新建一个接口集合,并创建两个接口,在第一个接口tests中取返回值并设置了环境变量,指定了接下来调用的接口名称,在第二个接口中使用这个变量。
选择运行接口集合,
运行后可以看到先运行的第一个接口后运行的第二个接口,并且第二个接口用的环境变量是第一个接口返回值。
复制第二个接口取名为第三个接口,并且将第一个接口中tests脚本下一个接口指定为第三个接口,我们再运行接口集合看看,可以看到调用第一个接口后直接调用了第三个接口而不是集合中排列的顺序。
重复调用:运行次数改成3,postman将调用三次。
修改间隔时间为2000ms,可间隔调用接口,使用下面命令打印时间戳,console.log打印的日志将显示在控制台。
console.log("返回时间戳",Math.round(new Date().getTime()));
运行以后可以看到每个接口返回以后再次调用下个接口间隔在2000ms左右右。
最后我们看下使用文件批量调用,创建 一个新的接口,选择一个创建的text数据文件,变量直接用英文逗号间隔。
var reqdata = request.data; #请求数据
console.log(reqdata); #打印请求数据
console.log(data.value); #data可以直接获取到文件数据
key_data,value
1,不请求打印用1
2,不请求打印用2
3,不请求打印用3
以上就是postman测试过程中常用的操作了,本篇文章是上一期留言同学想看的,时间短可能有遗漏,如果哪个地方不清楚欢迎留言我再水一篇。