iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >如何进行Postman自动化接口测试
  • 136
分享到

如何进行Postman自动化接口测试

2023-06-21 20:06:31 136人浏览 薄情痞子
摘要

如何进行Postman自动化接口测试,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。背景描述有一个项目要使用postman进行接口测试,接口所需参数有:appid: 应用标识;s

如何进行Postman自动化接口测试,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

背景描述

有一个项目要使用postman进行接口测试,接口所需参数有:

  • appid: 应用标识;

  • sign:请求签名,需要使用HMacSHA1加密算法计算,签名串是:{appid}${url}${stamp};

  • stamp:这个是时间戳;

  • option:业务参数;

问题是怎么在Postman发起请求时根据参数动态构建签名(sign)?

postman的脚本库中Cryptojs是支持各种算法的加密,包括HMACSHA1,签名算法有了。

难点是获取url中的path参数,当发起一个请求时开始可以固定一个path值的,自动化测试需要执行时获取path值,怎么获取呢?

创建一个GET请求

postman基础用法就不介绍了,先创建一个GET请求,URL中有配置各种动态参数

{{变量名}} :postman引用环境变量的语法;

{{$guid}}:postman预定义的环境变量用于获取一个GUID值;

如何进行Postman自动化接口测试

在pre-request scripts构建签名

pre-request scripts 是个javascript执行环境,在请求发送之前执行;把他当做js用就行,不过有的js库是不支持的。

接下来就是动态获取签名了

appid环境变量中配置的固定值;

stamp时间戳获取:

//获取unix时间getUnixTime:function(){ return Math.round(new Date().getTime()/1000);}

url值可以通过request.url获取然后解析出其中的path:

//获取url的path部分getUrlRelativePath:function(url){ var arrUrl = url.split("//");    var start = arrUrl[1].indexOf("/");    var end=arrUrl[1].indexOf("?");    var relUrl = arrUrl[1].substring(start,end);//stop省略,截取从start开始到结尾的所有字符 console.log(relUrl); return relUrl;}

构造签名串,使用秘钥加密即可。

postman提供的加密算法库并不一定所有都支持,有时候需要向后台去换取签名;

var host=pm.environment.get("host");var text=encodeURIComponent(plain);pm.sendRequest(host+"/FaceIn/ToHmacsha1?plain="+text+"&secret="+sercret, function (err, response) { var JSON=response.json(); //签名含有+等特殊字符需要url编码      pm.environment.set("sign",encodeURIComponent(json.result));});

签名串最好进行URL编码。

遗留问题:向后台换取签名的时候起初是返回字符串responsejson()解析不了的!

使用eval将定义的变量postmanUtil注入全局变量中然后调用

eval(environment.postmanUtil);postmanUtil.setLsdzSign();

结果如图:

如何进行Postman自动化接口测试

代码如下:

var postmanUtil={ //获取unix时间    getUnixTime:function(){ return Math.round(new Date().getTime()/1000);  }, //获取url的path部分  getUrlRelativePath:function(url){ var arrUrl = url.split("//");    var start = arrUrl[1].indexOf("/");    var end=arrUrl[1].indexOf("?");    var relUrl = arrUrl[1].substring(start,end);//stop省略,截取从start开始到结尾的所有字符 console.log(relUrl); return relUrl;  }, //签名  setLsdzSign:function(){ var appid=pm.environment.get("appid"); var sercret=pm.environment.get("appsercret"); //时间戳       var time=postmanUtil.getUnixTime();       pm.environment.set("stamp", time); //地址 获取当前地址的path部分       var path= postmanUtil.getUrlRelativePath(request.url); console.log(path); var url=path; var plain=appid+"$"+url.toLowerCase()+"$"+time; var hmac = CryptoJS.HmacSHA1(plain, sercret).toString(CryptoJS.enc.Base64); //获取签名,CryptoJS.HmacSHA1 无法满足签名算法只能从后台     var host=pm.environment.get("host"); var text=encodeURIComponent(plain);        pm.sendRequest(host+"/FaceIn/ToHmacsha1?plain="+text+"&secret="+sercret, function (err, response) { var json=response.json(); //签名含有+等特殊字符需要url编码              pm.environment.set("sign",encodeURIComponent(json.result));        });  }}eval(environment.postmanUtil);postmanUtil.setLsdzSign();

脚本写在环境变量中

在Pre-request Script写上面代码,要是单个接口还是可以的,即使很多接口只要Copy一份即可。

万一脚本需要改麻烦就来了,你需要去每个请求的 Pre-request Script窗口改,怎么解决呢?

可以解决,将postmanUtil定在ENVIRONMENT中就可以了,做法如下:

如何进行Postman自动化接口测试

其实就是将postmanUtil放入环境变量了,其它没有变,只要维护环境变量里的值就OK了,不用一个个去改。

再看pre-request script代码,这样就简单多了:

如何进行Postman自动化接口测试

postman console的用法

不知道是否成功获取了环境变量,又或者想查看某个变量的值,postman也提供了很方便的控制台查看,菜单View下Show Postman Console可以打开如下控制台:

如何进行Postman自动化接口测试

图中是console.log(sercret) 和 sendRequest()的结果

Collection Runner 自动化api测试

创建接口的测试用例

对于返回html的结果,只要测试body中包含某个值就算通过

如何进行Postman自动化接口测试

对于返回Json结果,只要Code为0即为通过

如何进行Postman自动化接口测试

窗口右侧有常用的脚本快捷操作,选中就可以生成,很方便

选择并运行自动化接口测试

点击主页左上角Runner进入,选择之前构建好的接口,并选择好环境,点击Run xxx 接口运行脚本测试

如何进行Postman自动化接口测试

测试结果

可以看到结果2接口都成功返回预定的结果

如何进行Postman自动化接口测试

看完上述内容,你们掌握如何进行Postman自动化接口测试的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网精选频道,感谢各位的阅读!

--结束END--

本文标题: 如何进行Postman自动化接口测试

本文链接: https://www.lsjlt.com/news/300738.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何进行Postman自动化接口测试
    如何进行Postman自动化接口测试,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。背景描述有一个项目要使用postman进行接口测试,接口所需参数有:appid: 应用标识;s...
    99+
    2023-06-21
  • 使用postman进行接口自动化测试
    目录一、接口结果判断1、功能区2、脚本相关3、代码模板二、集合(批量)测试1、批量执行2、变化的参数数据1、使用变量2、Pre-request Script3、测试数据集3、定期任务...
    99+
    2024-04-02
  • Postman中怎么进行接口测试和自动化测试
    在Postman中进行接口测试和自动化测试可以按照以下步骤进行: 创建一个新的Postman集合:在Postman中,创建一个新...
    99+
    2024-03-13
    Postman
  • 怎么使用postman进行接口自动化测试
    这篇“怎么使用postman进行接口自动化测试”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么使用postman进行接口自...
    99+
    2023-06-30
  • 如何用Postman做接口自动化测试
    前言什么是自动化测试把人对软件的测试行为转化为由机器执行测试行为的一种实践。例如GUI自动化测试,模拟人去操作软件界面,把人从简单重复的劳动中解放出来本质是用代码去测试另一段代码,属于一种软件开发工作,已经开发完成的用例还必须随着被测试对象...
    99+
    2023-06-04
  • Postman自动化接口测试实战
    目录背景描述创建一个GET请求在pre-request scripts构建签名脚本写在环境变量中postman console的用法Collection Runner 自动化API测...
    99+
    2024-04-02
  • 〖Python接口自动化测试实战篇④〗- 接口自动化测试详解
    订阅 Python全栈白宝书-零基础入门篇 可报销!白嫖入口-请点击我。推荐他人订阅,可获取扣除平台费用后的35%收益,文末名片加V! 说明:该文属于 Python全栈白宝书专栏,免费阶段订...
    99+
    2023-09-04
    自动化 python自动化测试实战 自动化测试 接口测试 接口自动化测试
  • python接口自动化测试(一)
    一.既然我们有这些的接口测试工具,为什么要做接口做自动化 敏捷开发,接口一般数量很大,团队实现接口测试,版本控制。 2、功能太死板,有些接口完全无法实现(复杂的加密接口,签名接口等) 3、接口项目当中...
    99+
    2023-09-01
    python 开发语言
  • Python+requests+unittest执行接口自动化测试详情
    目录1、安装requests、xlrd、json、unittest库2、创建六类Python Package3、创建一个Base_Page.py4、创建common类5、读取Exce...
    99+
    2024-04-02
  • Laravel怎么进行自动化测试
    这篇文章主要介绍“Laravel怎么进行自动化测试”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Laravel怎么进行自动化测试”文章能帮助大家解决问题。为什么需要自动化测试自动化测试并不复杂:它们...
    99+
    2023-07-04
  • Python进行自动化测试工具
    在自动化测试里Python用途很广,但是市面上测试工具不是很多,这里主要介绍的是一些Python测试的框架1、单元测试a、unittest、doctest:Python自带的单元测试框架b、pyunit:Junit的Python版本c、py...
    99+
    2023-01-31
    测试工具 Python
  • Python Unittest如何进行自动化的单元测试
    这篇文章将为大家详细讲解有关Python Unittest如何进行自动化的单元测试,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、python 测试框架(本文只涉及 P...
    99+
    2024-04-02
  • 接口自动化测试用例详解
    phpunit 接口自动化测试系列 Post接口自动化测试用例 Post方式的接口是上传接口,需要对接口头部进行封装,所以没有办法在浏览器下直接调用,但是可以用Curl命令的-d参数传递接口需要的参数...
    99+
    2023-09-02
    自动化 测试用例 php 自动化测试 软件测试
  • 如何利用python进行接口测试
    这篇文章主要讲解了“如何利用python进行接口测试”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何利用python进行接口测试”吧!接口测试的坑第一个坑:POST 和 GET----GE...
    99+
    2023-06-30
  • node.js+postman+mongodb如何搭建测试注册接口
    这篇文章主要讲解了“node.js+postman+mongodb如何搭建测试注册接口”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“node.js+postman+mongodb如何搭建测试...
    99+
    2023-07-02
  • C#中如何使用单元测试框架进行自动化测试
    C#中如何使用单元测试框架进行自动化测试引言:在软件开发过程中,自动化测试是一个非常重要的环节。通过编写和运行测试代码,可以帮助我们验证和确保代码的正确性和稳定性。在C#开发中,我们可以使用单元测试框架来实现自动化测试。本文将介绍C#中常用...
    99+
    2023-10-22
    自动化测试 C# 单元测试
  • UIAutomation怎么进行UI自动化测试
    UIAutomation是一种用于自动化UI测试的技术,它可以模拟用户在界面上的操作并验证预期结果。下面是使用UIAutomatio...
    99+
    2023-08-19
    UIAutomation
  • 如何进行自动化测试unitest中case的管理
    这篇文章主要为大家分析了如何进行自动化测试unitest中case的管理的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习“如何进行自动化测试unitest中ca...
    99+
    2023-06-04
  • Apifox:API 接口自动化测试完全指南
    1. 前言 在开始前大家可以先阅读:深入了解自动化测试:什么是自动化测试及其作用? 大家好,这是一篇关于 Apifox 的接口自动化测试教程。相信你已经对 Apifox 有所了解:“集 API 文档、API 调试、API Mock、API...
    99+
    2023-09-14
    java 前端 测试工具
  • PHP接口自动化测试框架实现
    我们来看一个简单的PHP实现的超简单的接口。 ...//报名验证private function apply_verify() { $raid = $this->input->get_post('raid'); $mid = $...
    99+
    2023-09-21
    php android oracle 软件测试 程序人生
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作