4.18-token验证
在postman编写的每一个叫测试用例,既然收测试用例,那么就会有结果对比
API测试断言tests(判断一个接口测试用例是否成功,或者说是通过,是根据断言的三个条件都成立的情况下得到的结果)
协议状态码
例:登录错误的状态码 返回响应数据只需要验证101
响应数据
业务状态码(是程序员根据自己的想法来定义的)
tests
(例如)
//定义一个变量来存放响应数据
var jsonData=JSON.parse(responseBody)
//查看返回的响应数据
console.log("查看响应数据\n",jsonData)
//验证协议状态码
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
tests["验证username字段"]=jsonData.user.username=="无涯"
console.log(jsonData.user.usernamne)
//验证usermane字段
var abc={
"a":{
"aa":"aaa"
}
}
console.log(abc.a.aa)
例如:验证uid和telephone
reports explore
collections:集合,就收测试用例的套件,在这个容器里可以存放很多的测试用例,测试套件。
保存:
collections--》点击+修改名称点击save
在postman,调用变量的方式是:
{{变量名}}
动态参数在postman的解决思路(登录为例)
1、登录成功后,在登录接口的tests中定义一个变量来获取响应数据中的动态参数token
2、在下个接口(比如首页等等)中,调用定义的变量,调用的方式是{{变量名}}
3、那么这个过程,需要把登录接口和引用登录接口的变量的接口都需要添加到collection中,它的顺序是登录结论在前
4、然后执行collection,这样就能够实现动态参数的关联
例如:
动态参数/关联/上个接口的输出是下个接口的输出
练习总结:13484545195
登录
auth---》url---》body(copy--》payload--》preview--view source)选json---》》tests
tests:
1.var jsonData=JSON.parse(responseBody) 定义一个变量来存放响应数据
2.pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
}); 验证协议码状态
3.tests["验证username字段"]==jsonDate.user.username=="无涯" 验证XXX比如用户名
4.pm.environment.set("setToken", "jsonData.token"); 获取token
5.验证token
1)、pm.environment.set("getToken", jsonData.token);console 定义一个变量
2)、pm.environment.get("getToken"))获取token变量
3)、tests["验证token的值"]=jsonData.token==pm.environment.get("getToken") 获取验证token的值
首页
index==》url==》headers(authorization--JWT(getToken))
查看preview- api值为0
tests:
1.var jsonData=JSON.parse(responseBody) 定义一个变量来存放响应数据
2.pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
}); 验证协议码状态
3.tests["测试用例个数"]=jsonData.count.api="0"
添加
product==》url==》headers(authorization--JWT(getToken))
code=201
tests:
1.var jsonData=JSON.parse(responseBody) 定义一个变量来存放响应数据
2.pm.test("Status code is 201", function () {
pm.response.to.have.status(201);
});
3.pm.environment.set("productID", "jsonData.id");先设置变量环境
4.tests["验证productid"]=jsonData.id== 验证
5.pm.environment.get("productID");最后设置变量环境
删除
3026==》url==》headers(authorization--JWT(getToken))
code=204
tests:
pm.test("Status code is 204", function () {
pm.response.to.have.status(204);
}); 删除不用定义一个变量来存放响应数据 直接填验证协议状态码
修改
3033==》url==》headers(authorization--JWT(getToken))
code=200
tests:
1.pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
}); 修改不用定义一个变量来存放响应数据 直接填验证协议状态码
2.var jsonData=JSON.parse(responseBody) 定义一个变量来存放响应数据
3.tests["验证产品信息ID"]==jsonData.id== 验证产品ID
4.pm.environment.get("productID"); 获取环境变量
4.18-token验证的更多相关文章
- Token验证失败
Token验证失败 微信 微信公众平台开发 Token校验失败 URL Token原文 http://www.cnblogs.com/txw1958/p/token-verify.html Token ...
- Web APIs 基于令牌TOKEN验证的实现
Web APIs 基于令牌TOKEN验证的实现 概述: ASP.NET Web API 的好用使用过的都知道,没有复杂的配置文件,一个简单的ApiController加上需要的Action就能工作.但 ...
- Token验证失败的解决方法
Token验证失败 微信 微信公众平台开发 Token校验失败 URL Token原文 http://www.cnblogs.com/txw1958/p/token-verify.html Token ...
- Django restframework之Token验证的缺陷及jwt的简单使用
一.主要缺陷: 1.Token验证是放在一张表中,即authtoken_token中,key没有失效时间,永久有效,一旦泄露,后果不可想象,安全性极差. 2.不利于分布式部署或多个系统使用一套验证,a ...
- ASP.NET Web APIs 基于令牌TOKEN验证的实现(保存到DB的Token)
http://www.cnblogs.com/niuww/p/5639637.html 保存到DB的Token 基于.Net Framework 4.0 Web API开发(4):ASP.NET We ...
- 总想自己动动手系列·3·微信公众号和外网服务交互之通过TOKEN验证(准备篇·1)
一.准备工作 (1)准备一个微信公众号(对私的订阅号或者对公的服务号). (2)准备一台部署了web应用,并且已经发布出去的Linux服务器(需要说明的是:微信公众号强烈建议使用80端口,使用其他自定 ...
- NodeJS 微信公共号开发 - 响应微信发送的Token验证(山东数漫江湖)
背景 使用 NodeJS 进行微信公共号开发,首先需要响应微信发送的Token验证,官方文档 填写服务器配置 登录微信公共平台,在开发下的基本配置打开该页面. 依次填写接口的 URL.自定义的 Tok ...
- 你的服务器没有正确响应Token验证的解决方法
你的服务器没有正确响应Token验证,请阅读消息接口使用指南 微信 微信公众平台开发模式 平台 消息 接口 启用 URL Token作者:http://txw1958.cnblogs.com/ 原文: ...
- 微信公众平台消息接口开发(2)你的服务器没有正确响应Token验证的解决方法
你的服务器没有正确响应Token验证,请阅读消息接口使用指南 微信 微信公众平台开发模式 平台 消息 接口 启用 URL Token作者:http://txw1958.cnblogs.com/ 本系统 ...
- 服务器通过微信公众号Token验证测试的代码(Python版)
我在阿里云租了一个云服务器,然后想把这个作为我的微信公众号的后台,启用微信公众号开发者需要正确的响应微信服务器的Token验证,为此把这个验证的Python代码贴出来,只要在服务器上运行这段代码,注意 ...
随机推荐
- Java 中你怎样唤醒一个阻塞的线程?
在 Java 发展史上曾经使用 suspend().resume()方法对于线程进行阻塞唤醒,但 随之出现很多问题,比较典型的还是死锁问题. 解决方案可以使用以对象为目标的阻塞,即利用 Object ...
- 解决MySQL报错ERROR 2002 (HY000)
今天在为新的业务线搭架数据库后,在启动的时候报错 root@qsbilldatahis-db01:/usr/local/mysql/bin# ./mysql ERROR 2002 (HY000): C ...
- 智能指针中C++重载'->'符号是怎么实现的
例如下面的代码: class StrPtr{ public: StrPtr() : _ptr(nullptr){} //拷贝构造函数等省略... std::string* operator->( ...
- 判断1~n有多少个1
判断1~n有多少个1 例如:1~12中 1 2 3 4 5 6 7 8 9 10 11 12 有1,10,11,12中含有1,则共有5个1: 算法如下: #include<stdio.h> ...
- css布局中左侧固定右侧自适应
float 单一层浮动法左侧固定成100px; 则核心代码 左侧:width:100px;float:left; 右侧 width:auto;margin-left:100px;绝大浏览器是没有任何问 ...
- CSS中宽度与高度
div的高度 div由的高度是由它里面的字体乘以字体建议的行高确定,跟这个字体大小没有关系(不同字体相同字体大小,会影响div的高度.)如过明确告诉浏览器行高,div高度就是行高. 文字两端对齐: 文 ...
- 直接使用sublime编译stylus
stylus介绍 Stylus 是一个CSS的预处理框架,2010年产生,来自Node.js社区,主要用来给Node项目进行CSS预处理支持,所以 Stylus 是一种新型语言,可以创建健壮的.动态的 ...
- 从零到有模拟实现一个Set类
前言 es6新增了Set数据结构,它允许你存储任何类型的唯一值,无论是原始值还是对象引用.这篇文章希望通过模拟实现一个Set来增加对它的理解. 原文链接 用在前面 实际工作和学习过程中,你可能也经常用 ...
- Java类型转换详解
Java类型转换详解 最近有同学问:自动类型转换老是记不住,到底是大转小,还是小转大 其实这个不用死记硬背,很好理解,我们拿 int 和 short 来举例: int 是 4 字节,也就是 32 bi ...
- 爬虫---scrapy全站爬取
全站爬取1 基于管道的持久化存储 数据解析(爬虫类) 将解析的数据封装到item类型的对象中(爬虫类) 将item提交给管道, yield item(爬虫类) 在管道类的process_item中接手 ...