test examples/test scripts
//https://www.getpostman.com/docs/v6/postman/scripts/test_examples //Setting an environment variable
pm.environment.set("variable_key", "variable_value"); //Setting a nested object as an environment variable
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)); //Getting an environment variable
pm.environment.get("variable_key"); //Getting an environment variable (whose value is a stringified object) //-- 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")); --------------------------------------------------- //Clear an environment variable
pm.environment.unset("variable_key"); //Set a global variable
pm.globals.set("variable_key", "variable_value"); //Get a global variable
pm.globals.get("variable_key"); //Clear a global variable
pm.globals.unset("variable_key"); //Get a variable
//This function searches for the variable across globals and the active environment.
pm.variables.get("variable_key"); //Check if response body contains a string
pm.test("Body matches string", function () {
pm.expect(pm.response.text()).to.include("string_you_want_to_search");
}); //Check if response body is equal to a string
pm.test("Body is correct", function () {
pm.response.to.have.body("response_body_string");
}); //Check for a JSON value
pm.test("Your test name", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.value).to.eql(100);
}); //Content-Type is present
pm.test("Content-Type is present", function () {
pm.response.to.have.header("Content-Type");
}); //Response time is less than 200ms
pm.test("Response time is less than 200ms", function () {
pm.expect(pm.response.responseTime).to.be.below(200);
}); //Status code is 200
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
}); //Code name contains a string
pm.test("Status code name has string", function () {
pm.response.to.have.status("Created");
}); //Successful POST request status code
pm.test("Successful POST request", function () {
pm.expect(pm.response.code).to.be.oneOf([201,202]);
}); //Use TinyValidator for JSON data
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;
}); //Decode base64 encoded data 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
}); //Send an asynchronous request
//This function is available as both a pre-request and test script.
pm.sendRequest("https://postman-echo.com/get", function (err, response) {
console.log(response.json());
}); //Convert XML body to a JSON object
var jsonObject = xml2Json(responseBody);
Sample data files //JSON files are composed of key/value pairs. Download JSON file
For CSV files, the top row needs to contain variable names. //Download CSV file //Set the request to be executed next
postman.setNextRequest("request_name"); //Stop workflow execution
postman.setNextRequest(null); postman.getResponseHeader(headerName)
/*Test-only: returns the response header with name “headerName”, if it exists. Returns null if no such header exists. Note: According to W3C specifications, header names are case-insensitive. This method takes care of this. */ //will return the same value.
postman.getResponseHeader("Content-type")
postman.getResponseHeader("content-Type")
pm.test("A single user was returned", function () {
pm.expect(pm.response.json().results).to.have.lengthof(1);
});
//Gender tests
pm.test("Gender is male", function () {
pm.expect(pm.response.json().result[0].gender).to.equal("male");
pm.expect(pm.response.json().result[0].gender).to.equal("mr");
});
//National test
pm.test("The user is from the United States", function () {
pm.expect(pm.response.json().result[0].nat).to.equal("US");
});
//----------------------------------------------------
//Here are some examples:
// example using pm.response.to.have
pm.test("response is ok", function () {
pm.response.to.have.status(200);
});
// example using pm.expect()
pm.test("environment to be production", function () {
pm.expect(pm.environment.get("env")).to.equal("production");
});
// example using response assertions
pm.test("response should be okay to process", function () {
pm.response.to.not.be.error;
pm.response.to.have.jsonBody("");
pm.response.to.not.have.jsonBody("error");
});
// example using pm.response.to.be*
pm.test("response must be valid and have a body", function () {
// assert that the status code is 200
pm.response.to.be.ok; // info, success, redirection, clientError, serverError, are other variants
// assert that the response has a valid JSON body
pm.response.to.be.withBody;
pm.response.to.be.json; // this assertion also checks if a body exists, so the above check is not needed
});
test examples/test scripts的更多相关文章
- NGUI学习笔记(一)UILabel介绍
来个前言: 作为一个U3D程序员,自然要写一写U3D相关的内容了.想来想去还是从UI开始搞起,可能这也是最直观同时也最重要的部分之一了.U3D自带的UI系统,也许略坑,也没有太多介绍的价值,那么从今天 ...
- react-router+webpack+gulp路由实例
背景:新项目要开始了,有一种想要在新项目中使用react的冲动,应该也是一个单页面的应用,单页应用就涉及到一个路由的问题.于是最近在网上找了蛮多关于react-router的文章,也遇到了许多的坑,经 ...
- SteamVR Unity工具包(VRTK)之激光和移动
简单激光指针(VRTK_ SimplePointer) 简单指针(Simple Pointer)脚本从控制器尾部发出一个有色光束来模拟激光束.这在场景中指向对象很有用,它能判断所指向的对象以及对象距控 ...
- SteamVR Unity工具包(VRTK)之概览和控制器事件
快速上手 · 克隆仓库 git clone https://github.com/thestonefox/SteamVR_Unity_Toolkit.git · 用Unity3d打开SteamVR_ ...
- datatables使用总结篇
<!doctype html> <html> <head> <meta charset="gbk"/> <meta name= ...
- 深入理解Fabric环境搭建的详细过程
博主之前的文章都是教大家怎么快速的搭建一个Fabric的环境,但是其中大量的工作都隐藏到了官方的脚本中,并不方便大家深入理解其中的过程,所以博主这里就将其中的过程一步步分解,方便大家! 前面的准备工作 ...
- 记一次安装Ipython的流程
这是一个悲伤的安装ipython的过程. 写下来留个教训吧. 也是希望对博友一些帮助吧. 注: 我也写了一篇window下安装bpython的文章(个人感觉bpython要比ipython强大的多), ...
- coTurn 运行在Windows平台的方法及服务与客户端运行交互流程和原理
coTurn是一个开源的STUN和TURN及ICE服务项目,只是不支持Windows.为了在window平台上使用coTurn源码,需要在windows平台下安装Cygwin环境,并编译coTurn源 ...
- [uboot] (第四章)uboot流程——uboot编译流程
http://blog.csdn.net/ooonebook/article/details/53000893 以下例子都以project X项目tiny210(s5pv210平台,armv7架构)为 ...
随机推荐
- Material Design系列第二篇——Getting Started
Getting Started This lesson teaches you to Apply the Material Theme Design Your Layouts Specify Elev ...
- 【Linux】使用 telnet 提示 Escape character is '^]'的意义
在linux/unix下使用telnet hostname port连接上主机后会提示Escape character is '^]' 这个提示的意思是按Ctrl + ] 会呼出telnet的命令行, ...
- 【2014年12月6日】HR交流会
今天的交流会感觉还是不错,体会到了一些东西,把它记下来. 想到什么写什么,可能没什么条理. 1.先选行业,再选职业,再选公司 根据自己的兴趣以及个人特长,能力等方面,需要定一个大概的方向,然后根据方向 ...
- 【大数据系列】hadoop单机模式安装
一.添加用户和用户组 adduser hadoop 将hadoop用户添加进sudo用户组 sudo usermod -G sudo hadoop 或者 visudo 二.安装jdk 具体操作参考:c ...
- 【Eclipse】启动时报错:No Java virtual machine (已解决)
在 Ubuntu 上下了个最新的 Eclipse ,解压后运行报这样的错误: 当然 JDK 的安装及环境变量的配置是没有问题的.使用 java -version 查询本机的JDK版本是可以的. 如果不 ...
- android开发-c++代码调用so库
Android项目的CMakeLists.txt代码如下,so文件放在项目的$Project/app/src/main/jniLibs/$arch下,$arch替换为arm64-v8a armv7a等 ...
- Jenkins常见任务配置
一.pmd 二.checkstyle -DskipTests=true clean compile package -Dcheckstyle.config.location="custom- ...
- chrome扩展写法
最近看到公司同事经常写chrome扩展,来提高生成效率,回想想自己以前也写过chrome扩展,但是由于不经常写,也没做积累也都忘记了,现在重新回顾一下. 一.chrome扩展基本概念 chrome扩展 ...
- 初次使用visual studio
之前一直听闻VS是世界上最强IDE,但是害怕他的体积庞大,一直不敢使用.我一直喜欢轻便简洁的东西,编译器也是一样,所以刚开始我使用的是C-FREE5,虽然界面略显粗糙,和低调奢华有内涵的VS比起来,真 ...
- python----字符编码与文件处理
字符编码 计算机工作就要通电,也就是说‘电‘驱使计算机干活,而电只有高电压(二进制1),低电压(二进制0),也就是说计算机只认数字. 编程的目的就是让计算机干活,编程的结果就是一堆字符,也就是我们编程 ...