postman 使用自动测试脚步 - use tests script
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 | 设置环境变量 pm.environment.set( "variable_key" , "variable_value" ); 将一个嵌套的对象设置为一个环境变量 var array = [1, 2, 3, 4]; pm.environment.set( "array" , JSON.stringify(array, null , 2)); var obj = { a: [1, 2, 3, 4], b: { c: 'val' } }; pm.environment.set( "obj" , JSON.stringify(obj)) 获得一个环境变量 pm.environment.get( "variable_key" ); 获得一个环境变量(其值是一个字符串化的对象) // These statements should be wrapped in a try-catch block if the data is coming from an unknown source. var array = JSON.parse(pm.environment.get( "array" )); var obj = JSON.parse(pm.environment.get( "obj" )); 清除一个环境变量 pm.environment.unset( "variable_key" ); 设置一个全局变量 pm.globals.set( "variable_key" , "variable_value" ); 获取一个全局变量 pm.globals.get( "variable_key" ); 清除一个全局变量 pm.globals.unset( "variable_key" ); 获取一个变量 该函数在全局变量和活动环境中搜索变量 pm.variables.get( "variable_key" ); 检查响应主体是否包含字符串 pm.test( "Body matches string" , function () { pm.expect(pm.response.text()).to.include( "string_you_want_to_search" ); }); 检查响应体是否等于字符串 pm.test( "Body is correct" , function () { pm.response.to.have.body( "response_body_string" ); }); 检查JSON值 pm.test( "Your test name" , function () { var jsonData = pm.response.json(); pm.expect(jsonData.value).to.eql(100); }); Content-Type 存在 pm.test( "Content-Type is present" , function () { pm.response.to.have.header( "Content-Type" ); }); 返回时间少于200ms pm.test( "Response time is less than 200ms" , function () { pm.expect(pm.response.responseTime).to.be.below(200); }); 状态码是200 pm.test( "Status code is 200" , function () { pm.response.to.have.status(200); }); 代码名包含一个字符串 pm.test( "Status code name has string" , function () { pm.response.to.have.status( "Created" ); }); 成功的POST请求状态码 pm.test( "Successful POST request" , function () { pm.expect(pm.response.code).to.be.oneOf([201,202]); }); 为JSON数据使用TinyValidator var schema = { "items" : { "type" : "boolean" } }; var data1 = [ true , false ]; var data2 = [ true , 123]; pm.test( 'Schema is valid' , function () { pm.expect(tv4.validate(data1, schema)).to.be. true ; pm.expect(tv4.validate(data2, schema)).to.be. true ; }); //解码base64编码数据 var intermediate, base64Content, // assume this has a base64 encoded value rawContent = base64Content.slice( 'data:application/octet-stream;base64,' .length); intermediate = CryptoJS.enc.Base64.parse(base64content); // CryptoJS is an inbuilt object, documented here: https://www.npmjs.com/package/crypto-js pm.test( 'Contents are valid' , function () { pm.expect(CryptoJS.enc.Utf8.stringify(intermediate)).to.be. true ; // a check for non-emptiness }); //发送异步请求 //此函数可作为预请求和测试脚本使用 pm.sendRequest( "https://postman-echo.com/get" , function (err, response) { console.log(response.json()); }); 将XML主体转换为JSON对象 以下是Postman 自动化测试时,Test列可以测试的脚步,根据自己项目实际情况可自行修改 // TESTS 例: |
pm.test("Status code is 200", function () { pm.response.to.have.status(200);});
if (responseCode.code === 200) {
try{
var jsonResponse = JSON.parse(responseBody);
pm.environment.set("SessionToken", jsonResponse.SessionToken);
pm.environment.set("Name", jsonResponse.Name);
console.log(jsonResponse.SessionToken);
}
catch(e) {
console.log(e);
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· Qt个人项目总结 —— MySQL数据库查询与断言