postman之请求&断言
http://www.jianshu.com/p/dd0db1b13cfc ---参考网址
文档:https://www.v2ex.com/p/7v9TEc53
api地址:https://www.v2ex.com/api/topics/hot.json
一、postman请求
1、get请求
1、URL:https://api.douban.com/v2/book/search?
2、点击url右侧的params,并输入参数
3、点击send按钮发送请求,在下面可以看到返回的response,响应的状态码,与响应时间
获取资源,一切api都是资源,一般都是获取资源,创建资源(用v2ex没有鉴权,以后有机会说)--返回的是json的字符串
怎么查看返回类型是json呢,在header里面查看Content-Type →application/json;charset=UTF-8
历史和集合
2、post请求
选取请求的方法为POST,并输入接口地址,因为post请求大多是json形式,所以可以打开Body选项,并选择JSON(application/json)形式,输入请求的json,同样其余的操作跟GET接口一样。
Header里面设置为:application/json
Body:raw[{},{},{}]数组集合之类的
3、添加cookie
- 添加cookie
- 在响应中查看cookie
在view-show postman consol-打印出cookie
在test加入代码
4、添加header
接口信息:
http://www.hidnx.com/wps/session/login/unsecure
POST /wps/session/login/unsecure HTTP/1.1
Host: www.hidnx.com
Device: WEB
Merchant: boyifang
Content-Type: application/json
Cache-Control: no-cache
Postman-Token: dd1975ee--c9d6-1cd6-2a362e529fb1 {
"username": "yyyyy100",
"password": "",
"uuId": "",
"ipAddress": "127.0.0.1",
"captcha": ""
二、postman鉴权
https://postman-echo.com/basic-auth
1、Basic Buth
输入用户名和密码
2、基于token的鉴权
访问的令牌或是权限
获取token——放在headers
以后发送每个请求的时候都带上token,表示已经登录了
三、变量的设置
环境变量有效范围仅仅在于你所选取的环境,全局变量对所有的环境都试用。
Environment:环境变量
Global:全局变量-错误信息提示设置为全局变量
Local:本地变量-一般在sandbox中定义
Data:测试数据中导入的变量-即参数化
1、环境变量
api可能需要在不同的环境中运行,所以api请求的服务器地址不能写死,希望是可以配置的,创建环境变量有多种方式。
演示:https://www.v2ex.com/api/nodes/show.json?name=python
node_name:php/python/qna
设置环境变量——然后选择test
2、全局变量
在environment里面不用选择,也起作用的
环境变量课覆盖全局变量
1、手工预先创建环境变量
URL:https://www.baidu.com/
右上角设置按钮-manage environment-添加以下环境变量-右上角选择NewENV-把URL修改为:https://www.{{baiduURL}}.com/-send
2、代码自动创建环境变量
方法:postman.setEnvironmentVariable("key", "value");
在某个请求发起之后创建:
在Tests标签里面添加如下:
变量引用
变量的引用:在需要的地方加上{{变量名}}便可
N个api:
api.xxxx.info/tasks
api.xxxx.info/tasks/task_id
引用变量:{{itest_domain}}/tasks
四、postman断言(检查点)
- 断言状态码:200
- 返回十条内容:(因为是别人的网站,这个数据是动态的,具体的内容我们不能断言,如果是自己的环境,数据可以自己造,然后可以断言内容)
全局变量:有些测试时需要登录的,里面的cookie和token类似的都需要保存,所以放在全局变量
环境变量:ip地址的改变
tests[ “检查点的名称” ] =responseBody(表达式) === “包含的字符串”
tests[ “响应时间小于200ms” ] =responseTime(表达式) === responseTime < 200;
1、点击tests按钮,可以看到右侧有个snippets栏,里面就是postman内置的测试脚本,辅助对接口进行测试
2、选择其中的一个脚本,修改其中的参数,再次点击send,这时response的tests出现了一个1/1,说明执行一个测试并且通过测试,绿色pass说明验证通过
四、collection的作用
容器
- 组织业务逻辑(很多模块)
- 导入导出
- 其他功能:监控和mock server
找到顶层功能区,找到runner按键,并点击
选中刚才新建的api集合,点击start,可以在右侧看到运行的结果
2、数据驱动测试
https://www.v2ex.com/api/nodes/show.json?name={{node_name}}
如果查询的数据都不一样的话-要构造不同的测试数据
准备测试数据:test.json——点击集合的run
运行结果如下:
断言
tests["Status code is 200"] = responseCode.code === ; var jsonData = JSON.parse(responseBody);
var node_name = postman.getEnvironmentVariable("node_name");
console.log(node_name) tests["返回值的的name必须和参数值的name相等"] = jsonData.name ===data.node_name; 从文件中获取数据,进行断言
四、命令行运行接口(cmder)
- 导出collection
- 安装nodejs和npm(cnpm)
- 安装Newman-验证是否安装成功:Newman -h
- 生成测试报告
- 在命令行运行集合:
cd E:\postman_doc\conmmandline //要保存的报告的目录和测试集合/测试数据所在的目录下面
newman run test_jkn.postman_collection.json -r html//-d 表示测试数据 -r 表示测试报告的形式,如下的四种格式
cd 到目录下 E:\postman_doc\conmmandline
1、首先下载刚才创建的集合,点击download,并保存到指定路径
2、安装postman命令行运行工具newman
(http://jingyan.baidu.com/article/2d5afd69e243cc85a2e28efa.html) Windows环境下的NodeJS+NPM+Bower安装配
- 首先首先,下载安装node.js,并配置好环境
- 然后安装Newman插件 npm install -g newman -g表示全局
- 校验是否安装成功,运行:newman --version
- 执行脚本
newman run <collection-file-source> [options]
内置脚本说明
. 清除一个全局变量
Clear a global variable
对应脚本:
postman.clearGlobalVariable("variable_key");
参数:需要清除的变量的key .清除一个环境变量
Clear an environment variable
对应脚本:
postman.clearEnvironmentVariable("variable_key");
参数:需要清除的环境变量的key .response包含内容
Response body:Contains string
对应脚本:
tests["Body matches string"] =responseBody.has("string_you_want_to_search");
参数:预期内容 .将xml格式的response转换成son格式
Response body:Convert XML body to a JSON Object
对应脚本:
var jsonObject = xml2Json(responseBody);
参数:(默认不需要设置参数,为接口的response)需要转换的xml .response等于预期内容
Response body:Is equal to a string
对应脚本:
tests["Body is correct"] = responseBody === "response_body_string";
参数:预期response .json解析key的值进行校验
Response body:JSON value check
对应脚本:
tests["Args key contains argument passed as url parameter"] = 'test' in responseJSON.args
参数:test替换被测的值,args替换被测的key .检查response的header信息是否有被测字段
Response headers:Content-Type header check
对应脚本:
tests["Content-Type is present"] = postman.getResponseHeader("Content-Type");
参数:预期header .响应时间判断
Response time is less than 200ms
对应脚本:
tests["Response time is less than 200ms"] = responseTime < ;
参数:响应时间 .设置全局变量
Set an global variable
对应脚本:
postman.setGlobalVariable("variable_key", "variable_value");
参数:全局变量的键值 .设置环境变量
Set an environment variable
对应脚本:
postman.setEnvironmentVariable("variable_key", "variable_value");
参数:环境变量的键值 .判断状态码
Status code:Code is
对应脚本:
tests["Status code is 200"] = responseCode.code != ;
参数:状态码 .检查code name 是否包含内容
Status code:Code name has string
对应脚本:
tests["Status code name has string"] = responseCode.name.has("Created");
参数:预期code name包含字符串 .成功的post请求
Status code:Successful POST request
对应脚本:
tests["Successful POST request"] = responseCode.code === || responseCode.code === ; .微小验证器
Use Tiny Validator for JSON data
对应脚本:
var schema = {
"items": {
"type": "boolean"
}
};
var data1 = [true, false];
var data2 = [true, ];
console.log(tv4.error);
tests["Valid Data1"] = tv4.validate(data1, schema);
tests["Valid Data2"] = tv4.validate(data2, schema);
参数:可以修改items里面的键值对来对应验证json的参数
用requests库
先安装 pip install tequests
[01]: /api/site/stats.json
[02]: /api/site/info.json
[03]: /api/nodes/all.json
[04]: /api/nodes/show.json?id=1
[05]: /api/topics/latest.json
[06]: /api/topics/show.json?id=1 (broken)
[07]: /api/topics/show.json?username=Livid
[08]: /api/topics/show.json?node_id=1
[09]: /api/topics/create.json (POST,未测试)
[10]: /api/replies/show.json?topic_id=1
[11]: /api/members/show.json?username=Livid
postman之请求&断言的更多相关文章
- postman测试实例--断言
postman测试实例--断言 让我们来看看postman测试的一些例子. 其中大部分是作为内部postman片段. 大多数测试是为单行的JavaScript语句一样简单. 只要你想一个请求,你可以有 ...
- postman—Sandbox和断言
Postman沙盒 Postman Sandbox是一个JavaScript执行环境,您可以在编写预请求脚本和测试脚本(在Postman和Newman中)时可用.在这个沙箱中执行您在预请求/测试脚本部 ...
- 4、postman的常见断言
推荐我的另一篇文章 浅谈JSONObject解析JSON数据,这篇文章原理类似,使用java或者beanshell进行断言解析json数据 介绍断言之前,我们先测试1个接口: 接口地址:https: ...
- 『政善治』Postman工具 — 9、在Postman中使用断言
目录 1.Tests的介绍 2.常用SNIPPETS(片段)说明 (1)常用变量相关 (2)状态码相关 (3)响应结果断言: (4)Header : (5)响应速度: 3.示例 (1)响应码断言 (2 ...
- postman测试请求参数中文乱码问题
用IDEA调试代码时,用postman测试请求url,发现post或者get请求中参数是中文的话,后台获取的参数是乱码, 一般两个方面 发送请求的一方:postman的问题 接受请求的一方:tomca ...
- Postman Post请求上传文件
Postman Post请求上传文件一.选择post请求方式,输入请求地址 二.填写Headers Key:Content-Type :Value:multipart/form-data 如下图 三. ...
- express,中间件(body-parser),req.body获取不到参数(含postman发请求的方法)
问题描述: 最近在做毕设,express 里边的中间件(body-parser)失效,req.body获取不到任何值,req.query能获取到值.一开始加body-parser中间件是有用的,直到昨 ...
- 在postman中请求的接口有csrf怎么办
今天在写项目的时候,写了一个post接口,为了防止crsf攻击,config.defalut.js文件中加了如下代码: exports.security = { csrf: { ignoreJSON: ...
- Postman系列四:Postman接口请求设置环境变量和全局变量、测试沙箱和测试断言、测试集运行与导入数据文件
一:Postman中接口请求设置环境变量和全局变量 全局变量和环境变量可以通过Pre-request Script和Tests设置,会在下面测试沙箱和测试断言中讲到. 全局变量的设置:官网参考http ...
随机推荐
- mangde 的服务启动
启动命令如下
- 递归 dfs 记忆化搜索 动态规划
今天做洛谷P1434 [SHOI2002]滑雪 的时候仔细想了想记忆化搜索 现在总结一下 为了描述问题的某一状态,必须用到该状态的上一状态,而描述上一状态,又必须用到上一状态的上一状态……这种用自已来 ...
- [2019徐州网络赛J题]Random Access Iterator
题目链接 大致题意:从根节点出发,在节点x有son[x]次等概率进入儿子节点,求到达最深深度的概率.son[x]为x节点的儿子节点个数. 又又又又没做出来,心态崩了. 下来看了官方题解后发觉自己大体思 ...
- Selenium1.0与2.0介绍
Selenium的实现原理 首先,你要明确刚才建立的测试用例是基于Selenium 2.0,也就是Selenium + WebDriver的方案.其次,你需要知道,对Selenium而言,V1.0和V ...
- HNUSTOJ 1601:名字缩写
1601: 名字缩写 时间限制: 1 Sec 内存限制: 128 MB 提交: 288 解决: 80 [提交][状态][讨论版] 题目描述 Noname老师有一个班的学生名字要写,但是他太懒了,想 ...
- 剑指offer-对称二叉树-树-python
题目描述 请实现一个函数,用来判断一颗二叉树是不是对称的.注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的. # -*- coding:utf-8 -*- # class TreeNo ...
- 深度学习之(经典)卷积层计算量以及参数量总结 (考虑有无bias,乘加情况)
目录: 1.经典的卷积层是如何计算的 2.分析卷积层的计算量 3.分析卷积层的参数量 4.pytorch实现自动计算卷积层的计算量和参数量 1.卷积操作如下: http://cs231n.github ...
- Date与String互相转换及日期的大小比较
private static final String PATTERN = "yyyy-MM-dd HH:mm:ss"; /** * String转Date * * @param ...
- Spring基础08——使用p命名空间
1.使用p命名空间 为了简化xml配置,越来越多的xml文件采用属性而非子元素配置信息,Spring从2.5版本开始引入了一个新的p命名空间,可以通过<bean>元素属性的方式配置Bean ...
- Linux系统性能测试工具(六)——磁盘io性能工具之dd
本文介绍关于Linux系统(适用于centos/ubuntu等)的磁盘io性能测试工具-dd.磁盘io性能测试工具包括: fio: dd