postman自动化,测试脚本
//获取当前时间的时间戳
function getTimestamp(len=10) {
// 如果需要自动获取则将此处代码放开
// var tmp = Date.parse( new Date() ).toString();
// tmp = tmp.substr(0,len);
//return tmp;
return '1546571642'
}
//时间戳换算时间
function timestampToTime(timestamp) {
//时间戳为10位需*1000,时间戳为13位的话不需乘1000
let date = new Date(timestamp * 1000);
let Y = date.getFullYear() + '-';
let M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '-';
let D = date.getDate() > 10 ? date.getDate():'0'+date.getDate();
return Y+M+D;
} // 秘钥ID
let SecretId = 'XXXXXXXXXXX';
// 秘钥key
let SecretKey = 'XXXXXXXXXXXXX';
// 服务器地址
let host = 'timatrix.tencentcloudapi.com';
// 产品名
let service = 'timatrix';
// 时间戳
let RequestTimestamp = getTimestamp(10);
//提交方式
let HTTPRequestMethod = request.method;
// Content-Type数据类型
let contentType = 'multipart/form-data'
let CanonicalURI = '/';
let CanonicalQueryString = '';
let CanonicalHeaders ;
if(HTTPRequestMethod == "POST" || HTTPRequestMethod == "post"){
// contentType = 'multipart/form-data'
// CanonicalHeaders = 'content-type:multipart/form-data\nhost:'+host+'\n';
// 上面是文件
contentType = 'application/json'
CanonicalHeaders = 'content-type:application/json\nhost:'+host+'\n';
} else if (HTTPRequestMethod == "GET" || HTTPRequestMethod == "get"){
contentType = 'application/x-www-form-urlencoded'
CanonicalHeaders = 'content-type:application/x-www-form-urlencoded\nhost:'+host+'\n';
} else {
contentType = 'application/json'
CanonicalHeaders = 'content-type:application/json\nhost:'+host+'\n';
}
let SignedHeaders = 'content-type;host';
let RequestPayload = '';
let HashedRequestPayload = CryptoJS.SHA256(encodeURIComponent(RequestPayload));
let CanonicalRequest =
HTTPRequestMethod + '\n' +
CanonicalURI + '\n' +
CanonicalQueryString + '\n' +
CanonicalHeaders + '\n' +
SignedHeaders + '\n' +
HashedRequestPayload;
let Algorithm = 'TC3-HMAC-SHA256'; let CredentialScope = timestampToTime(RequestTimestamp)+'/'+service+'/tc3_request';
let HashedCanonicalRequest = CryptoJS.SHA256(CanonicalRequest);
let StringToSign =
Algorithm + '\n' +
RequestTimestamp + '\n' +
CredentialScope + '\n' +
HashedCanonicalRequest;
let SecretDate = CryptoJS.HmacSHA256(timestampToTime(RequestTimestamp),"TC3" + SecretKey);
let SecretService = CryptoJS.HmacSHA256(service,SecretDate);
let SecretSigning = CryptoJS.HmacSHA256("tc3_request",SecretService);
let Signature = CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA256(StringToSign,SecretSigning));
Signature = Signature.toLowerCase()
let Authorization =
Algorithm + ' ' +
'Credential=' + SecretId + '/' + CredentialScope + ', ' +
'SignedHeaders=' + SignedHeaders + ', '+
'Signature=' + Signature
postman.setEnvironmentVariable('host', host);
postman.setEnvironmentVariable('contentType', contentType);
postman.setEnvironmentVariable('RequestTimestamp', RequestTimestamp);
postman.setEnvironmentVariable('Authorization', Authorization);
postman自动化,测试脚本的更多相关文章
- postman常用测试脚本
测试脚本: 设置环境变量 var jsonData = JSON.parse(responseBody); postman.setGlobalVariable("5KMST", j ...
- Postman—测试脚本
前言 对于Postman中的每个请求,我们都可以使用JavaScript语言来开发测试脚本.这也就好比单元测试.我们先看看Postman的相关界面: 编写测试脚本 Postman测试脚本本质上是在发送 ...
- Python测试开发-浅谈如何自动化生成测试脚本
Python测试开发-浅谈如何自动化生成测试脚本 原创: fin 测试开发社区 前天 阅读文本大概需要 6.66 分钟. 一 .接口列表展示,并选择 在右边,点击选择要关联的接口,区分是否要登录, ...
- python+pytest接口自动化(12)-自动化用例编写思路 (使用pytest编写一个测试脚本)
经过之前的学习铺垫,我们尝试着利用pytest框架编写一条接口自动化测试用例,来厘清接口自动化用例编写的思路. 我们在百度搜索天气查询,会出现如下图所示结果: 接下来,我们以该天气查询接口为例,编写接 ...
- CentOS 下运维自动化 Shell 脚本之 expect
CentOS 下运维自动化 Shell脚本之expect 一.预备知识: 1.在 Terminal 中反斜杠,即 "" 代表转义符,或称逃脱符.("echo -e与pri ...
- linux软件管理之------编译安装nginx服务器并手动编写自动化运行脚本
红帽系列的 linux软件管理分为三类:1. rpm 安装软件.2. yum 安装软件.3. 源码包编译安装.前面两种会在相关专题给出详细讲解.源码包的编译安装是非常关键的,我们知道linux的相关版 ...
- Selenium执行测试脚本稳定性的一些经验分享交流
Selenium执行测试脚本稳定性的一些经验分享交流 公司的自动化WEB测试框架IATA已上线运行了一段时间,期间发现一些脚本稳定性的问题,与大家分享一下. CASE执行游览器:ie firefox ...
- 《转载》Jenkins持续集成-自动化部署脚本的实现《python》
本文转载自慕课网 读者须知:1.本手记本着记续接前面的两张手记内容整理2.本手记针对tomcat部署测试环境实现 最近工作比较繁忙,导致这章一直拖延,没有太抽出时间来总结.要实现Jenkins端的持续 ...
- Postman 常用测试结果验证及使用技巧
Postman的test本质上是JavaScript代码,通过我们编写测试代码,每一个tests返回True,或是False.每一个tests实际上就是一个测试用例 官方文档给出了很多验证方式,我们通 ...
- Postman—命令执行脚本及生成报告
前言 前面的应用中,都是在postman图形界面工具里面进行测试,但是有时候我们需要把测试脚本集成到CI平台,或者在非图形界面的系统环境下进行测试,那么我们该如果处理呢 通过newman来执行post ...
随机推荐
- C# - LINQ 表达式树
表达式树(Expression Tree) 表达式树是不可执行的代码,它只是用于表示一种树状的数据结构,树上的每一个节点都表示为某种表达式类型,大概有25种表达式类型,它们都派生自Expression ...
- 第二章 Java程序设计环境
安装 Java 开发工具包 JDK : 编写Java程序的程序员使用的软件 JRE : 运行Java程序的环境,包含JVM和基本类库, 但不包含编译器 SE, EE, ME Java FX : 用于图 ...
- jquery前端倒计时
function FreshTime(){ // var endtime=new Date("2019/04/15,12:20:12");//结束时间 var endtime = ...
- oAuth2授权协议 & 微信授权登陆和绑定 & 多环境共用一个微信开发平台回调设置
OAuth2(open Auth)开放授权协议 授权码模式流程: 1.浏览器(客户端)点击一个比如使用微信登陆按钮 2.会跳到认证服务器页面,让用户选择是否授权 3.如果用户点击授权,那么会跳转到开始 ...
- OpenCV绘制图像中RGB三个通道的直方图
一开始是看<OpenCV计算机视觉编程攻略(第2版)>这本书学做直方图,但是书本里说直方图的部分只详细说了黑白图像(单通道)的直方图绘制方法,RGB图像的直方图只说了如何计算,没有说计算完 ...
- 利用MySQL游标进行计算排名
SELECT a.id, a.nick_name, a.member_account, a.integral, () AS tRank #计算行号 FROM tzqc_raw_data AS a, ( ...
- HDU4864:Task(贪心)
Problem DescriptionToday the company has m tasks to complete. The ith task need xi minutes to comple ...
- 动态sql与静态sql的区别
首先,所谓SQL的动态和静态,是指SQL语句在何时被编译和执行,二者都是用在SQL嵌入式编程中的,这里所说的嵌入式是指将SQL语句嵌入在高级语言中,而不是针对于单片机的那种嵌入式编程. 静态SQL,在 ...
- angularJs实现数据双向绑定的原理
angular1.x在指定的事件触发时(比如dom事件,xhr响应事件,浏览器定位变更事件,定时器事件),通过脏值检测的方式比对数据是否有变更,来决定是否更新视图. angular2使用了zone.j ...
- 06-Python入门学习-元组、字典、集合类型
一.元组 一:基本使用:tuple 1 用途: 记录多个值,当多个值没有改的需求,此时用元组更合适 2 定义方式: 在()内用逗号分隔开多个任意类型的值 t=(1,1.3,'xx',('a','b') ...