有什么教做维c甜品的网站,h5网站开发费用,安陆网站建设,可信网站认证哪里有postman工具概述
Postman 是一款功能强大的 API 开发和测试工具#xff0c;在软件开发和测试领域应用广泛。开发阶段#xff0c;可以通过工具进行mock数据测试#xff0c;方便开发#xff0c;联调#xff1b;测试阶段#xff0c;可以通过不同环境#xff0c;不同数据进…postman工具概述
Postman 是一款功能强大的 API 开发和测试工具在软件开发和测试领域应用广泛。开发阶段可以通过工具进行mock数据测试方便开发联调测试阶段可以通过不同环境不同数据进行接口测试和数据构造回归阶段可以通过场景自动化的方式进行接口串联测试通过定时任务的方式生成测试报告等。
postman如何进行场景化接口自动化 postman数据处理
经常我们在接口测试过程中遇到以下问题
测试/生产只是域名不同、token不一样每次都需要写两个接口或者说是改url如果接口较多的情况下如何快速处理呢—如何做到一套接口多环境使用
postman可不可以连接数据库-进行一些获参和断言呢
接口传参的时候不同情况下我要写多个case就是多条用例我能不能在一个接口里通过条件判断什么情况传什么参数呢
我一个接口返回多组数据我需要怎么遍历获取他们呢再对他们进行处理呢
接口传参中有些值我想自定义随机生成或者按照一定规律生成如何去生成呢
我需要大量不同的数据时或者说我需要批量修改/创建一些数据如何去生成呢
那么针对以上这些问题postman工具应该怎么处理呢 引入变量
postman变量类型
本地变量Local Variable
本地变量主要是针对单个url请求设置的变量作用域只是局限在请求范围内。
//设置本地变量
pm.variables.set(key,value);正常接口参数 引用变量设置
全局变量Global Variable
全局变量是指在所有的环境里面变量值都是一样的全局变量的作用域是所有请求。
//设置全局变量
pm.globals.set(key,value)
注意当环境变量和全局变量名称一样时切换到某个环境时环境变量会覆盖全局变量设置方式
环境变量Environment Variable
环境变量指在不同环境同一个变量值随着环境不同而变化。
//变量的引用格式为
{{varname}}一个Java Script执行环境可以通过JS脚本来编写Pre-request Script和Test Script。
Pre-request Script预置脚本可以用来修改一些默认参数在请求发送之前执行
Test Script测试脚本当接收到响应之后再执行测试脚本
数据变量Data Variable
数据变量是通过导入外部数据文件json文件或者csv文件来获取变量数据。
数据处理方式
获取对应所需参数方法
接口返回值—获取所需参数 数据库查询—获取所需参数xmysql Mock数据—构造所需参数 获取返回值信息
//获取返回的响应值然后转为json格式var jsonDatapm.response.json();
//获取接口返回的值tg_order_idjsonData[data][0][order_id]或bpidjson.data.bpid
//控制台日志查看console.log(tg_order_id);
//将获取的变量设置全局变量 pm.globals.set(tg_order_id,tg_order_id); postman连接数据库
1、安装nodejs
2、安裝xmysql
3、连接数据库 xmysql -h test-XXX-af01.db.58dns.org -o 53200 -u 用户名 -p 密码 -d 数据库名
-h 输入连接数据库地址-u -p 是要连接的数据库用户名密码-d 是要连接的数据库中库名
4、获取数据库相关信息
在postman中通过 http://localhost:XXXX/api/ 访问 xmysql 自动生成的 Rest API postman获取数据库信息常用操作语句
官方详细文档https://github.com/o1lab/xmysql#api-overview
1、请求方式 2、基本的数据库操作 3、排序操作 使用案例
js脚本编写
经常我们为了方便多个接口串联使用会需要对postman接口返回的结果进行处理然后方便接口数据进行串联这里就离不开js脚本编写
js基本用法
1、js调试
console.log()
console.warn
console.info
2、js数据类型
6种数据类型
值类型(基本类型)字符串String、数字(Number)、布尔(Boolean)、为空Null、未定义Undefined、Symbol。
引用数据类型对象(Object)、数组(Array)、函数(Function)
查看数据类型typeof
使用 typeof 操作符来检测变量的数据类型。
注如果对象是 JavaScript Array 或 JavaScript Date 我们就无法通过 typeof 来判断他们的类型因为都是 返回 object。
3、js类型转换
var obj JSON.parse(text);JSON 字符串转换为 JavaScript 对象
javaScript 变量可以转换为新变量或其他数据类型
通过使用 JavaScript 函数
Number() 转换为数字 String() 转换为字符串 Boolean() 转换为布尔值Date() 日期转换为字符串。
通过 JavaScript 自身自动转换
当 JavaScript 尝试操作一个 错误 的数据类型时会自动转换为 正确 的数据类型。
自动转换为字符串输出一个对象或一个变量时 JavaScript 会自动调用变量的 toString() 方法
4、JavaScript JSON
JSON 格式化后为 JavaScript 对象JSON 格式在语法上与创建 JavaScript 对象代码是相同的
JSON 数据 - 一个名称对应一个值/JSON 对象 /JSON 数组
JSON 字符串转换为 JavaScript 对象
JavaScript 值转换为 JSON 字符串
使用案例 js条件语句
在写代码时总是需要为不同的决定来执行不同的动作。故可以在代码中使用条件语句来完成该任务 在 JavaScript 中我们可使用以下条件语句 if 语句 - 只有当指定条件为 true 时使用该语句来执行代码 if…else 语句 - 当条件为 true 时执行代码当条件为 false 时执行其他代码 if…else if…else 语句- 使用该语句来选择多个代码块之一来执行 switch 语句 - 使用该语句来选择多个代码块之一来执行
案例使用
js循环
Js循环语句 希望一遍又一遍地运行相同的代码并且每次的值都不同那么使用循环是很方便的。 JavaScript 支持不同类型的循环 for - 循环代码块一定的次数 for/in - 循环遍历对象的属性 希望一遍又一遍地运行相同的代码并且每次的值都不同那么使用循环是很方便的。 JavaScript 支持不同类型的循环 while - 当指定的条件为 true 时循环指定的代码块 do/while - 同样当指定的条件为 true 时循环指定的代码块 注意忘记增加条件中所用变量的值否则循环永远不会结束
js函数和对象
js函数
函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块。 JavaScript 函数语法 函数就是包裹在花括号中的代码块前面使用了关键词 function当调用该函数时会执行函数内的代码。 function functionname() { // 执行代码 }
调用带参数的函数 function myFunction(var1,var2){代码} 带有返回值的函数 function myFunction(){ var x5; return x;}
JS对象
1、数字方法Numbere对象 2、String对象 3、日期对象Date对象
4、Math 对象 5、Array对象
postman断言运行
【1】校验接口响应的状态码
【2】检查从JSON响应中获取到某个字段判断其是否与预期字段一致
【3】判断实际响应时间是否与低于预期时间
【4】检查响应信息中是否包含某些指定的字符串pm.test(Body matches string, function () { pm.expect(pm.response.text()).to.include(string_you_want_to_search); });
【5】检查实际获取的响应体即 Body 信息与预期结果的响应体是否一致pm.test(Body is correct, function () { pm.response.to.have.body(response_body_string); });
【6】检查响应中的头域信息Headers是否与预期一致pm.test(Content-Type is present
, function () {pm.response.to.have.header(Content-Type); });
【7】检查响应码是否与预期集合中的某个值一致pm.test(Successful POST request, function () { pm.expect(pm.response.code).to.be.oneOf([201,202]); });
【8】检查响应信息中是否包含某个预期值pm.test(Status code name has string, function () { pm.response.to.have.status(Created); });
【9】转化XML格式的响应成JSON对象 var jsonObject xml2Json(responseBody); 运行collection
数据data驱动测试
构建工作流
在使用Coolection Runner 时集合中的请求执行顺序就是请求在Collection中的排列顺序。
如果需要执行依次执行1-5-2-3-4的请求则有2种方式
1、需要手动调整顺序
2、在Tests里指定下一个请求 postman.setNextRequest(requestname) 命令执行 newman测试报告 jenkins集成运行 总结
1、在自动化方面-postman -只能用于小规模项目之间的自动化-不是很体系化本地化偏重 2、生成测试报告-也不是很美观 3、针对测试多库时不友好-只能连接一个数据库–适用于数据库单一的需求测试