• 0
  • 0
分享
  • postman之参数化详解——软件测试圈
  • 饭团🍙 2022-11-17 13:57:21 字数 2040 阅读 4232 收藏 0

前言

小伙伴们,好久不见呀,今天呢笔者想和大家聊聊postman参数化,在接口测试中,部分参数每次发送请求是唯一的数值,这时可以采用把测试数据参数化处理的方式实现,postman参数化的形式主要有三种。

1、内置变量实现

内建变量为postman自带的系统变量,但是不能进行精确化的对比

Variable NameDescriptionExamples
{{$guid}}添加一个V4风格的GUID“611c2e81-2ccb-42d8-9ddc-2d0bfa65c1b4”
{{$timestamp}}添加当前的时间戳,精确到秒1562757107 , 1562757108 , 1562757109
{{$randomint}}添加0-1000之间的随机整数0-1000之间的随机整数
{{$randomFullName}}随机全名(名字 姓氏)Connie Runolfsdottir , Sylvan Fay , Jonathon Kunze
{{ $randomBoolean}}随机布尔值 (true/false)true , false , false , true

2、Pre-request-Script页签中使用代码实现

单一请求执行顺序如下图所示:

1.png

Pre-request-Script→request→response→Tests

这是比较推荐的一种参数化方法,可以通过自己写脚本的方式,提高了可塑性,

值得注意的是接口测试执行时接口会先执行这里的代码,然后发送请求,最后进行断言,与test一样都支持js语法

Pre-request-Script为执行接口请求之前要做的操作,而tests是执行完请求要做的操作,内建变量一般放在request里,我们

也可以用代码在pre-request-Script中实现,用代码实现的好处是可以复用,以下为部分举例:

示例一、Pre-request-Script先定义当前时间并获取,把当前时间设置为全局变量后传入请求参数中,然后在Tests中进行断言

2.png

3.png

3、下面是其他部分参数化方式的实现

4.png

代码如下

var now_time = Date.now();
pm.globals.set("now_time", now_time);
 
const guid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'
.replace(/x/g, () => (Math.floor(Math.random() * 16)).toString(16))
.replace(/y/g, () => (Math.floor(Math.random() * 4 + 8)).toString(16));
 
pm.globals.set("guid_value", guid);
 
const randomInt = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min;
 
pm.globals.set("random_number", randomInt(8,14) );
 
const getRandomValue = list => list[randomInt(0, list.length - 1)];
const charsInName = ['王','李','张'];
pm.globals.set("people_name", getRandomValue(charsInName) );
 
var mobile_num = `13${randomInt(500000000, 599999999)}`;
pm.globals.set('mobile_num',mobile_num);
 
const sleep = (milliseconds) => {
const start = Date.now();
while (Date.now() <= start + milliseconds) {}
};
sleep(5000);

4、外部文件的方式实现

4.1通过csv文件或者json格式的文件实现参数化

csv的运用,首先通过在文件中设置需要搜索的字段和搜索出来的结果

5.png

关键自之间需要用英文逗号分隔开,第一行写定义的参数变量,切记需要以utf-8的编码格式、.csv的文件后缀名保存,点击runner按钮

6.png

也可以在控制台查看具体运行结果

7.png

断言的期望结果如果也写入文件中的话,也可以在Tests断言中调用,这里不再举例

9.png

4.2外部文件也可以通过json格式的文件实现参数化,导入文件的时候记得校验文件是否为json

10.png

11.png

值得注意的是iteration设置迭代次数,每次迭代都会使用你的数据文件中的一行,如果迭代次数超过数据文件中的行数,讲会重复使用最后一行数据


作者:自动化测试七叔

原文链接:https://blog.csdn.net/qishuzdh/article/details/125267411

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 1.编写测试用例有哪几种方法?答:大刚法、等价类、边界值、因果图、场景法、正交法、错误推断法、正则表达式2.测试的六条基本法则是什么?答:功能、可靠性、易用性、效率、可维护性、可移植性3.软件测试分类有哪些?(从是否关心软件内部结构的角度划分)答:白盒、灰盒、黑盒4.软件测试的测试流程是什么?答:分析需求文档-需求评审-编写测试计划-计划评审-编写测试用例-用例评审-执行测试用例-迭代测试轮次-提交阶段性测试报告-验收测试-提交测试总结性报告5.编写测试用例的原则是什么?答:100%的覆盖需求规格说明书6.软件测试过程中必须经历哪些阶段?答:单元测试集成测试系统测试验收测试7.黑盒测试包含哪些...
            13 15 13277
            分享
          •   一、我们经常遇到的问题  在我们的测试日常中,不免会遇到网页性能感知测试的工作,比如:测试访问某个网页耗时。针对此类测试,笔者经历过两种简单的方法:测试网页使用的后端接口响应耗时等同为网页耗时;使用秒表计算网页响应耗时。  测试网页响应耗时,我们需要知道触发网页请求时,直至网页刷新、响应,整个过程到底包含了些什么。从大体来分,主要包含两部分耗时:后端接口请求响应耗时和前端页面资源加载耗时。而抛开前端页面资源加载时间,单纯将后端接口响应耗时等同为网页响应耗时是不准确的;而不清除浏览器本身资源配置和消耗,简单使用秒表计算网页响应耗时,结果是粗泛不准确的。  那么,我们应该怎么测试网页响应耗时呢...
            14 14 1223
            分享
          •   前端自动化测试框架:如何选择最适合你的方案  前端自动化测试是指使用代码或工具来模拟用户在浏览器上的操作,以检验网页或应用程序的功能和性能是否符合预期。前端自动化测试可以提高开发效率,减少人工错误,保证软件质量和用户体验。  但是,在众多的前端自动化测试框架中,如何选择最适合你的方案呢?不同的框架有不同的实现方式,优缺点和适用场景。本文将介绍目前几种主流的前端自动化测试框架:selenium, cypress, taiko 和 testcafe,并比较它们之间的异同点。  selenium: 基于webdriver 的跨平台、跨语言、跨浏览器解决方案  selenium 是一个开源项目,它...
            0 0 54
            分享
          • 通常我们在谈论性能测试的时候,往往将性能测试分为压力测试和负载测试两大类去讨论,在设计性能测试方案和执行性能测试过程的时候,也是基于这两个角度去思考。在传统意义上,通过这两个手段去评估某个系统的性能表现已经很完美了。但是随着大数据互联网、移动互联网等新兴概念的兴起,传统的性能测试概念、方法已经无法全面的引导我们开展性能测试工作。比如移动端的兴起与广泛应用,移动端的性能也是性能测试的范围;再比如如何评估系统扩展性、弹性性能表现相关的容量测试,也要我们去关注。因为公司最近做服务端容量的相关工作,因此我们就性能测试,容量评估两个角度去重新定义性能测试的工作范围和职责。1、性能测试性能测试的最终目的是...
            0 0 6057
            分享
          • 自2014年成立以来,新浪金融评测室已连续成功举办六届手机银行APP测评,积攒了丰富的测评经验,获得了业界的广泛认可。2019年,新浪金融研究院对21家主流手机银行APP从用户体验、产品功能、性能安全和发展创新四个方面进行测评分析,并对各个APP的亮点和存在的问题进行了梳理。测评结果显示,工农中建四大行和招商、平安、民生、光大等股份制银行排名靠前,测评结果基本代表了目前银行业资金实力和科技实力最强的银行群体。用户使用APP过程中最直观的印象几乎都来自用户体验和产品功能。新浪测评中,这两项分值占比高达75%,基本上可以代表测评总分值。得分高的手机银行,用户体验和产品功能一定做得好。带给用户最丰富...
            0 0 2773
            分享
      • 51testing软件测试圈微信