PostMan Test 的脚本scripts编写方法
- 设置环境变量
- 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 的脚本scripts编写方法的更多相关文章
- Postman 进阶(pre-request scripts&test script)
Postman 进阶 1. pre-request scripts pre-request scripts是一个关联了收藏夹内request,并且在发送request之前执行的代码片段.这对于在r ...
- Postman—前置请求脚本
前言 在前面的文章中已经说到了,在Postman中可以编写以下两种脚本: 前置请求脚本 测试脚本 这两种脚本的运行时机都不一样,在上一篇<Postman—脚本介绍>中已经详细的进行了介绍. ...
- Loadrunner录制脚本与编写脚本的区别
异同点: 1.录制的和编写的脚本质量上没有区别 2.性能脚本关心的是用户和服务器的数据交互,从这点上来看,录制和编写也没有区别,手动编写脚本也可以写出很真实的脚本 3.能录制的情况下,就录制吧,谁每天 ...
- [改善Java代码]易变业务使用脚本语言编写
建议16: 易变业务使用脚本语言编写 Java世界一直在遭受着异种语言的入侵,比如PHP.Ruby.Groovy.JavaScript等,这些“入侵者”都有一个共同特征:全是同一类语言—脚本语言,它们 ...
- loadrunner 脚本优化-参数化方法
脚本优化-参数化方法 by:授客 QQ:1033553122 方法一 1.确定需要参数化的内容 2.选中需要参数化的内容 3.右键选中的内容->Replace with a Parameter- ...
- Linux中脚本的使用方法
Linux中脚本的使用方法 一.前言 关于Linux中的脚本的用法,一直没有时间去好好地总结,正好今天下雨,就好好的整理一下思路吧,其实精通了一门语言,比如C语言,学习其他语言需要的成本是非常少的,同 ...
- 防止xss(脚本攻击)的方法之过滤器
一 什么是脚本注入 概念我就不说了 直接百度一份 XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中.比如这些代码包括HTML代码和客户端 ...
- selenium从入门到应用 - 2,简单线性脚本的编写
本系列所有代码 https://github.com/zhangting85/simpleWebtest 本文将介绍一个Java+TestNG+Maven+Selenium的web自动化测试脚本环境下 ...
- 【深入浅出 Yarn 架构与实现】3-1 Yarn Application 流程与编写方法
本篇学习 Yarn Application 编写方法,将带你更清楚的了解一个任务是如何提交到 Yarn ,在运行中的交互和任务停止的过程.通过了解整个任务的运行流程,帮你更好的理解 Yarn 运作方式 ...
随机推荐
- CF #552(div3)F 背包问题
题目链接:http://codeforces.com/contest/1154/problem/F 题意:一个商店有n个物品,每个物品只能买一次,同时有m种优惠,即一次买够x件后,这x件中最便宜的k件 ...
- Java POJO类直接存储在MongoDB中
记录Java POJO类直接存储在MongoDB中的策略. maven: <dependency> <groupId>org.mongodb</groupId> & ...
- 下面程序的输出结果是____ A:11,10 B:11,11 C:10,10 D:10,11 int x=10; int y=x++; printf("%d,%d",(x++,y),y++);
下面程序的输出结果是____ A:11,10 B:11,11 C:10,10 D:10,11 int x=10; int y=x++; printf("%d,%d",(x++,y) ...
- ApiCloud开发的注意事项
1. 引擎或模块问题:遇到应用层无法解决的问题,如果能确定需要引擎和模块支持的,不要自己想办法绕过去,要第一时间在开发者社区提交问题,或找APICloud项目经理提出. !!!注意!!!: 在开发者社 ...
- 构建web应用之——文件上传
我们通过使用multipart请求数据接收和处理二进制信息(如文件).DispatcherServlet并没有实现任何解析multipart请求数据的功能,它将该任务委托给了Spring中的multi ...
- 微信浏览器无法跳转到apk下载链接 微信屏蔽了我的APP下载链接如何处理
由于微信的限制,应用文件在内置浏览器中下载全部被屏蔽掉,造成很多人用微信扫描二维码下载时,界面显示一片空白,容易误导以为在下载呢 <!DOCTYPE html><html>&l ...
- 怎样用div做三角形
20181204 用盒子模型做三角形的效果: <div></div> width:0px; height:0px; border:10px solid red; border- ...
- Linux权限总结
第1章 课前小拓展 虚拟机打不开原因 问题: 该虚拟机似乎正在使用中. 如果该虚拟机未在使用,请按“获取所有权(T)”按钮获取它的所有权.否则,请按“取消(C)”按钮以防损坏. 配置文件: E:\vm ...
- C#Mvc批量删除
前台页面(JQuery) @*全选&批删*@<script type="text/javascript"> $(document).ready(function ...
- react native第一天--------KnightRider
今天是2017年6月8,是我的项目react native-CRM(用户关系管理)的第一天,一早就配置了一上午Mac的环境,然后运行项目,在react-native init project的时候一直 ...