postman的操作与使用

发布时间 2023-08-02 00:24:24作者: 马文涛测试开发
1.创建collection(集合)
0
"Collection"是用于组织和管理API请求的容器。它可以看作是一组相关的API请求的集合,可以按照不同的目的、功能或模块进行组织。
2.添加请求
0
0
3.创建一个get请求
get请求的特点:
如:图书管理系统中查询列表请求
http://111.231.6.117:9111/BookManager/bookInfo/queryBookInfosByPage?page=1&limit=10
  • 参数和url通过 "?" 隔开
  • 参数是以键值对的形式,例如:page=1
  • 可以传递多个参数,参数与参数之间通过"&"隔开。例如:page=1&limit=10
 
0
  • postman中响应的内容
    • body:服务器相应的数据
    • cookies: 返回的cookes
    • headers: 对响应信息的描述,比如返回内容的格式 长度 返回的服务器
    • Test Restults: 显示脚本执行结果的地方
4.创建一个post请求
4.1 post请求、get请求的对比和post请求体中常见的三种传递参数的格式
  • post请求的常用的格式
    • form-data格 式: multipart/form-data; boundary=
    • x-www-form-urlencoded格式: application/x-www-form-urlencoded
    • json格式 application/json
  • post请求和get请求的区别
    • GET请求中的参数会出现在URL中,对用户来说可见,安全性较低。POST请求中的参数在请求正文中,对用户来说不可见,相对更安全。
    • post请求可以上传文件
    • 参数传递:GET请求通过URL的查询字符串传递参数,而POST请求将参数包含在请求的正文中。
  • 三种请求体中 content-Type的差异
    • 没有说固定使用哪一种 ,根据接口文档定义的
0
二.postman测试断言
1.断言响应状态码
// 断言响应状态码为 200 pm.test("Response status code is 200", function () { pm.response.to.have.status(200); });
pm:postman的实例。
test( ) postman实例的测试方法。 这个方法 有 2 个参数。
参数1:"Status code is 200"。 这个参数可以任意修改,不影响断言。
作用:在断言结束后,显示给用户,断言结果的提示文字。
参数2:是一个 匿名函数调用。
pm.response.to.have.status(200); 的意思是:
postman的响应结果中,应该有 响应状态码 200。 ———— 这里的 200 是预期结果。
0
2.断言包含字符串
//断言字符串 pm.test("Body matches string", function () { pm.expect(pm.response.text()).to.include("天龙八部"); });
pm:postman的实例。
test() postman实例的测试方法。 这个方法 有 2 个参数。
参数1:"Body matches string"。 这个参数可以任意修改,不影响 断言。
作用:在断言结束后,显示给用户,断言结果的提示文字。
参数2:是一个 匿名函数 调用。
pm.expect(pm.response.text()).to.include("string_you_want_to_search"); 的意思是:
postman 期望 响应文本中,应该包含 “你想搜索的字符串”(预期结果)
0
3.断言json数据
pm.test("Your test name", function () { var jsonData = pm.response.json(); console.log(jsonData.data[0]) pm.expect(jsonData.message).to.eql("success"); });
pm:postman的实例。
test() postman实例的测试方法。 这个方法 有 2 个参数。
参数1:"Body matches string"。 这个参数可以任意修改,不影响 断言。
作用:在断言结束后,显示给用户,断言结果的提示文字。
参数2:是一个 匿名函数 调用。
var jsonData = pm.response.json(); 将 整个 json响应体 赋值到 变量 jsonData 上。
pm.expect(jsonData.value).to.eql(100); postman 期望 json结果中 指定key 的值为 xxx
value 能取值:success、code、message
console.log(jsonData.data[0]) 控制台打印出结果
0
三.postman关联
1.全局变量
postman的全局变量概念:在postman全局生效的变量,是唯一的,一般全局变量的设置是用户在请求时,有需要当做公共的请求头的内容,如token、cookie等
设置全局变量
1.1 通过工具设置
0
1.2 通过js代码
//获取json响应数据 var jsonData = pm.response.json(); //控制台打印响应数据中的部分字段 console.log(jsonData.data.token) 设置全局变量 pm.globals.set("token", jsonData.data.token);
0
2.获取全局变量
在请求参数的页面使用:{{全局变量名称}}
0
通过js代码获取:
//定义一个变量接收token的值 var get_token = pm.variables.get("token") //打印token的值 console.log(get_token)
3.环境变量
3.1 新建环境变量(通过页面)
0
0
3.2 通过js代码创建环境变量
//设置环境变量 pm.environment.set("url2", "192.168.1.1");
0
3.3 获取环境变量
通过“{{环境变量}}”的形式获取全局变量,如接口请求的URL:
0
 
四.postman参数化
1.参数化的概念
测试数据,组织到数据文件中,通过脚本的反复迭代,使用不同的数据,达到测试不同用例的目标。
应用场景:一般在测试同一个接口的不同 测试点时,只有测试数据不同。考虑使用参数化
2.postman的两种参数化方式
2.1 csv
  • 优点:数据组织格式简单
  • 缺点:
    • 不能测试 bool 类型。因为 postman 读取 csv后,将所有非数值类型数据,自动添加 ”“ 变为字符串
    • 不能存储复杂数据类型(元组、列表、字典)。
    • 不能实现 参数测试。
  • 应用场景:数据量较大,数据组织格式简单。
csv文件:
0
postman设置:
0
0
2.2 json
  • 优点:
    • 可以测试 bool类型
    • 能使用 复杂数据类型
    • 可以实现 参数测试。
  • 缺点:相同数据量,json文件要远大于 csv 文件。
  • 应用场景:数据量较少,数据组织格式复杂。需要进行 参数测试!
json文件:
0
postman操作编写:
0
0
0
五.创建用例集合
0
 
0
五.生成测试报告
1.安装newman插件(必须先安装npm)
  • 安装newman npm install -g newman
  • 测试安装成功 newman -v
  • 安装newman插件 - 扩展版 npm install -g newman-reporter-htmlextra
2.安装成功之后在postman中导出json文件
0
0
3.执行命令
在命令行执行命令:“newman run ./postman_test_run.json -r html --reporter-html-export ./testreport.html”
说明:
  • “./postman_test_run.json”为文件路径
  • “./testreport.html”生成的html文件