//获取当前时间的时间戳
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自动化,测试脚本的更多相关文章

  1. postman常用测试脚本

    测试脚本: 设置环境变量 var jsonData = JSON.parse(responseBody); postman.setGlobalVariable("5KMST", j ...

  2. Postman—测试脚本

    前言 对于Postman中的每个请求,我们都可以使用JavaScript语言来开发测试脚本.这也就好比单元测试.我们先看看Postman的相关界面: 编写测试脚本 Postman测试脚本本质上是在发送 ...

  3. Python测试开发-浅谈如何自动化生成测试脚本

    Python测试开发-浅谈如何自动化生成测试脚本 原创: fin  测试开发社区  前天 阅读文本大概需要 6.66 分钟. 一 .接口列表展示,并选择 在右边,点击选择要关联的接口,区分是否要登录, ...

  4. python+pytest接口自动化(12)-自动化用例编写思路 (使用pytest编写一个测试脚本)

    经过之前的学习铺垫,我们尝试着利用pytest框架编写一条接口自动化测试用例,来厘清接口自动化用例编写的思路. 我们在百度搜索天气查询,会出现如下图所示结果: 接下来,我们以该天气查询接口为例,编写接 ...

  5. CentOS 下运维自动化 Shell 脚本之 expect

    CentOS 下运维自动化 Shell脚本之expect 一.预备知识: 1.在 Terminal 中反斜杠,即 "" 代表转义符,或称逃脱符.("echo -e与pri ...

  6. linux软件管理之------编译安装nginx服务器并手动编写自动化运行脚本

    红帽系列的 linux软件管理分为三类:1. rpm 安装软件.2. yum 安装软件.3. 源码包编译安装.前面两种会在相关专题给出详细讲解.源码包的编译安装是非常关键的,我们知道linux的相关版 ...

  7. Selenium执行测试脚本稳定性的一些经验分享交流

    Selenium执行测试脚本稳定性的一些经验分享交流 公司的自动化WEB测试框架IATA已上线运行了一段时间,期间发现一些脚本稳定性的问题,与大家分享一下. CASE执行游览器:ie firefox ...

  8. 《转载》Jenkins持续集成-自动化部署脚本的实现《python》

    本文转载自慕课网 读者须知:1.本手记本着记续接前面的两张手记内容整理2.本手记针对tomcat部署测试环境实现 最近工作比较繁忙,导致这章一直拖延,没有太抽出时间来总结.要实现Jenkins端的持续 ...

  9. Postman 常用测试结果验证及使用技巧

    Postman的test本质上是JavaScript代码,通过我们编写测试代码,每一个tests返回True,或是False.每一个tests实际上就是一个测试用例 官方文档给出了很多验证方式,我们通 ...

  10. Postman—命令执行脚本及生成报告

    前言 前面的应用中,都是在postman图形界面工具里面进行测试,但是有时候我们需要把测试脚本集成到CI平台,或者在非图形界面的系统环境下进行测试,那么我们该如果处理呢 通过newman来执行post ...

随机推荐

  1. C# - 设计模式 - 策略模式

    策略模式 问题场景 多个类型都有一些共同的属性和方法,可以称这些成员为行为,为了避免重复在多个类型中编码相同部分的行为,应考虑将这些行为定义在抽象类(超类)中,利用继承时多个类型可以共享这些行为.比如 ...

  2. ActiveMQ的Destination高级特性

    1.    Composite Destinations  组合目的地 组合队列Composite Destinations : 允许用一个虚拟的destination代表多个destinations ...

  3. 记录一次Python下Tensorflow安装过程,1.7带GPU加速版本

    最近由于论文需要,急需搭建Tensorflow环境,16年底当时Tensorflow版本号还没有过1,我曾按照手册搭建过CPU版本.目前,1.7算是比较新的版本了(也可以从源码编译1.8版本的Tens ...

  4. Lnmp下pureftpd新建FTP账户权限不足解决方法

    解决办法:  登录服务器.执行以下命令 chattr -i /home/wwwroot/default/.user.ini chown www:www -R /home/wwwroot/你的lnmp安 ...

  5. Java_Character类

      Character类用于对单字符进行操作. 常用的方法: System.out.println(Character.isDigit('1')); // true 判断是否是一个数字字符 Syste ...

  6. Selenium API常用方法

    driver.findElements()//定位一组List元素集合 driver.findElement()//定位一个元素 driver.getTitle()//获取页面标题 driver.ge ...

  7. 在Windows环境下搭建Nginx文件服务器(简单实用版)

    为了解决项目组内容应用,打算把本地的e:tools目录共享出来,具体操作步骤如下1.下载安装包:http://nginx.org/download/nginx-1.9.15.zip2.解压缩3.修改配 ...

  8. C# .Net 中字典Dictionary<TKey,TValue>泛型类 学习浅谈

    一.综述: Dictionary<TKey,TValue>是在 .NET Framework 2.0 版中是新增的.表示键值对的集合,Dictionary<TKey,TValue&g ...

  9. left join on and 与 left join on where的区别

    数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户.       在使用left jion时,on和where条件的区别如下: 1. on条件是在生成临时 ...

  10. beta冲刺2/7

    目录 摘要 团队部分 个人部分 摘要 队名:小白吃 组长博客:hjj 作业博客:beta冲刺(2/7) 团队部分 后敬甲(组长) 过去两天完成了哪些任务 整理博客 做了点商家数据表格 接下来的计划 做 ...