目录:
1.为什么要接口测试
2.接口测试的注意点
3.什么情况下做接口测试
4.接口测试要注意哪些内容
5.接口测试和功能测试哪个难
6.接口测试难点
7.接口测试测试思路
8.你们的接口测试是怎么做的
9.接口测试掌握哪些知识
10.接口测试一般会遇到什么问题
1.为什么要接口测试
Postman是我们做接口测试的常用工具之一,然而对于刚接触Postman的小伙伴们来说,往往对这款工具支持的各类变量感到迷茫,傻傻分不清这些不同级别的变量都有哪些区别、分别适用于哪些场景本次分享将对Postman各类变量的创建,执行请求时该变量的作用域,以及不同变量的适用场景,进行详细讲解。
2.接口测试的注意点
关于变量那些事Postman中的变量并没有什么神奇之处,和任何编程语言一样,变量就是一个占位符,用来保存执行过程中的初始值,中间值或结果值,这些值也可以通过表达式来生成我们以简洁的python为例:a =
3.什么情况下做接口测试
“hello” b = input() c = a +” “+ b print(c)(左右滑动查看完整代码)以上代码运行后,首先通过input() 函数,从控制台获取一个字符串,假设我们给到的字符串是“51testing”,那么这个时候b指代的内容就是“51testing”。
4.接口测试要注意哪些内容
通过a +” “+ b表达式进行字符串拼接后,c指代的内容就是“hello 51testing”,如此,最后通过print(c)运行后,打印输出的内容也就是“hello 51testing”我们可以看到以上代码中的 “a,b,c” 三个都是变量,在程序执行过程中指代着不同的内容:。
5.接口测试和功能测试哪个难
变量a对应的是初始值;变量b对应的是运行中实时赋予的值;变量c对应的是一串表达式运算后的结果值这就是变量及其在程序执行中的普遍应用Postman中的变量Postman中的变量常用于设置请求前的初始值,请求中用于替换固定参数值,请求后用于相关断 言的处理等。
6.接口测试难点
此外,不同级别的变量,有着各自所负责的作用域(即访问范围的限定)总而言之,这些变量都起到了承上启下,关联上下文接口业务的作用Postman一共提供了5种不同类型的变量,对应5个作用域:1. Global —— 全局变量。
7.接口测试测试思路
2. Collection —— 集合变量3. Environment —— 环境变量4. Data —— 数据变量5. Local —— 局部变量,也有称本地变量下面我们就这5个变量逐一介绍Global —— 全局变量。
8.你们的接口测试是怎么做的
1Postman全局变量及其作用域全局变量,即通用变量,在Postman中所有请求(request)所有用例集合(Collections)等都能访 问到正因为如此,我们需要慎重使用全局变量,因为每一个请求(request),每一个断言脚本(Postman中设置断言的地方:Tests),每一个前置处理(Postman中前置处理:Pre-request Script),每一个集合(Postman用于管理一组业务或上下文相关的接口:Collections),这些地方都能随意访问且更改全局变量的值。
9.接口测试掌握哪些知识
一般而言,全局变量仅适用于快速创建原型设计的需求,非必要,不轻易使用。2Postman全局变量的创建在Postman中可以通过界面和脚本两种方式来创建全局变量。【通过界面创建全局变量】创建全局变量
10.接口测试一般会遇到什么问题
初始化全局变量
输入变量名称,并给一个初始值,这样一个新的全局变量就创建好了注意:创建完成后不要忘记 “Ctrl+S” 进行保存;初始值是该变量的默认值【通过Script脚本创建全局变量】创建全局变量并赋值:pm.globals.。
set(“g_value”, “51testing测试圈”);(左右滑动查看完整代码)在Postman前置处理中创建全局变量:
注意:创建完成后不要忘记 “Ctrl+S” 进行保存3Postman全局变量应用Demo为了演示全局变量的实现效果,我们这里简单以51testing测试圈首页为例,发送一个请求,在该请求的前置处理中,设置如上全局变量g_value,且更改之前通过界面创建的全局变量g_test的值,通过执行后,将日志打印输出到控制台,一起看一下效果。
构建51testing测试圈首页请求,在前置处理中创建全局变量:
在请求后将全局变量值打印输出到日志Tests区域专门用于处理请求后的一系列操作,例如断言等,这里我们仅在控制台输出全局变量的值//控制台输出全局变量值 console.log(pm.globals.get(。
“g_test”)); console.log(pm.globals.get(“g_value”));(左右滑动查看完整代码)
执行“Send”后,在控制台查看日志输出。
4其他关于全局变量的常用脚本这里再给大家汇总一下常用的全局变量脚本,感兴趣的都可以尝试一下://创建全局变量并赋初始值pm.globals.set(“全局变量名”, “全局变量初始值”); //给全局变量赋值
pm.globals.get(“全局变量名”); //通过脚本删除一个全局变量pm.globals.unset(“全局变量名”); //通过脚本清除当前Postman中的所有全局变量pm.globals
.clear();(左右滑动查看完整代码)Collection —— 集合变量1Postman集合变量及其作用域Postman中的Collection集合包含了一组Postman请求,所以该变量的作用域就是该集合范围。
集合变量只能由该集合内部的请求才能访问,不属于该集合的请求是访问不到的2Postman集合变量的创建Postman中Collection集合变量只能通过界面创建,创建步骤如下选择你要创建集合变量的那个Collection,点击该集合旁边的 “。
”,点击 “Edit”:
在界面中选择 “Variables” ,创建一个Collection集合变量,变量名为hot_id,可以不给初始值。
这样,我们就创建了一个名为 “hot_id” 的集合变量3Postman集合变量应用Demo我们以51testing测试圈的搜索为例,展示集合变量的应用经过接口分析得出如下信息:请求方式:POST请求地址:http://quan.51testing.com/searchAll
请求参数:type=XX;search=X;hotId=X;page=X请求样例:http://quan.51testing.com/searchAll?type=2&search=性能测试&hotId=9&page=1
可以看到,虽然是POST请求,但这里的请求参数还是以“?”形式拼接在url后面,类似于GET请求方式。其中type值固为是2,page代表页数。搜索关键字search,对应的hotId如下:
我们以搜索 “性能测试” 测试为例,且当前接口中的参数hotID引用已经设置好的集合变量“hot_id”:
在Pre-request Script中设置集合变量的值为“9”:
执行请求后,相应结果如下:
可以发现响应的结果,和我们直接通过网页搜索返回的页面信息一致(以下为直接网页搜索”性能 测试“的结果)。
Environment —— 环境变量1Postman环境变量及其作用域环境变量是Postman中最为频繁使用的变量之一,环境变量的常见使用场景主要有两个:1、通常情况下,在软件研发过程中,对于被测对象往往有几套环境:例如测试环境、研发环境、客户现场环境等。
而对于接口测试而言,环境变化所引起的仅仅是域名的不同,根据不同的环境会对应不同的域名2、上下游关联业务的接口,即A接口请求的响应值中,有一部分作为请求参数,作为B接口请求参数的一部分也就是说后一个接口的请求参数依赖于前一个接口的响应参数。
当需要将数据从一个请求传递到另一个请求时,环境变量是一个不错的选择,环境变量的作用域 小于全局变量2Postman环境变量的创建在Postman中可以通过界面和脚本两种方式来创建环境变量【通过界面创建环境变量】。
通过界面创建环境变量的方式和之前创建全局变量类似。
分别创建两套环境变量,一套为test环境(用于测试环境),一套为dev环境(用于研发环境)。
【通过脚本创建环境变量】在Postman的Pre-request Script和Tests中,可以通过如下语句创建访问环境变量://创建环境变量num, 赋值为10 pm.environment.set
(“num”,10) //获取环境变量num pm.environment.get(“num”)(左右滑动查看完整代码)需要注意:这里使用的是pm.environment而不是pm.variables,环境变量 “num” 的作用域仅 限于当前设置的环境,Postman仅在选定的环境中对变量进行操作。
3Postman环境变量应用Demo要将环境变量应用到接口测试用例中,非常方便假设我们当前是在测试环境下,紧接着上面 51testing测试圈搜索案例,选择对应的测试环境后,将域名替换成环境变量即可选择test环境并将域名替换成环境变量:
执行请求后,相应结果如下:
可以看到和我们在2.2中获取的结果是一致的,说明环境变量已经成功使用了大家也可以将test 环境替换成另一套dev环境,自行练习体会一下,加深对环境变量的理解Data —— 数据变量1Postman数据变量及其作用域。
提到数据变量,不得不说数据驱动对于一个被测接口而言,我们需要准备的测试数据往往不仅 限于一组例如最简单的登录,基于等价类边界值的测试设计,我们势必会设计出一系列被测登录账号,难 不成针对每一个登录账号,都构建一个接口请求用例?。
这明显是不合逻辑的冗余设计,这时就需要用到数据驱动,即多个相同类型的测试数据,应用于同一个接口测试用例在Postman中,这些测试数据是通过测试用例集合(Collections)中的集合运行器添加到接口测试用例中去。
需要注意的是,Data数据变量的来源是用户提供的JSON、CSV或TXT等Postman中支持的数据文件格式2Postman数据变量的创建以之前 “Collection—— 集合变量”小节提到的搜索接口为例,假设当前有如下待测数据(共7组):。
请求方式:POST请求地址:http://quan.51testing.com/searchAll请求参数:type=XX;search=X;hotId=X;page=X请求样例:http://quan.51testing.com/searchAll?type=2&search=性能测试&hotId=9&page=1
通过TXT文件创建并保存测试数据:
当然,这里的测试数据也可以是CSV、JSON等Postman支持的其他文件格式【实现参数化】对于51testing测试圈的搜索请求,请求参数是拼接在请求地址中的,我们只需要将对应的请求参数进行参数化即可。
参数化后如下,将数据文件中对应的名称列表替换请求中的固定数据:Postman中的参数化表现形式为{{参数名}}。
3Postman数据变量应用Demo在完成了以上参数化,及数据文件的准备后(别忘记保存),我们就可以投入应用了。首先,点击这个接口归属的Collections集合,选择Run Collection:
选择待测接口,并添加测试数据文件:
可以预览一下当前的数据文件:
执行:
【执行结果】从Console控制台可以看到,一共执行了7次,每次都代入了不同的测试数据,由于在请求过程 中,中文字符进行了编码,所以看到的是编码后的效果,英文字符依旧保持原始数据效果不变。
Local —— 局部变量局部变量,又称本地变量,仅在特定请求执行的上下文中运用如果你熟悉其他编程语言(Java、C、python等),局部变量等同于编程语言中,函数级别的变量局部变量的优先级小于全局变量,小于集合变量,小于环境变量。
如果全局/集合/环境变量名,局部变量名相同的情况下,那么将默认使用局部变量和局部变量创建,需要通过脚本编程的方式,例如:pm.variables.get / pm.variables.set//jsonData 是一个局部变量,Postman中的脚本是JS,通过var来说声明一个变量。
var jsonData = pm.response.json(); //token 是一个局部变量var token = jsonData.msg.token; //Postman中创建局部变量 testVar ,并赋值
pm.variables.set( testVar ,token); //Postman中获取局部变量 testVar 的值 pm.variables.get( testVar );(左右滑动查看完整代码)
总结以上我们就Postman中不同类型变量的概念,以及各自使用方式、作用域做了详细梳理,配合Demo演示进行应用介绍此外有这样几点需要大家注意:1. Postman不具备自动保存功能,所以在其中的每一步操作/编辑/更改后,必须记得保存,否则无法生效;。
2. 建议在不同的范围内使用不同的变量名称,以避免混淆;3. 对于环境变量,只有在选定的环境区域中才有效,即在解析变量时,Postman 只会查看选定的环境最后,希望通过本文的学习,能够有助于你对Postman中变量及其应用的深入理解,有效落实到今后的接口测试项目中去。
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
8. 精力有限,不少源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别
丞旭猿论坛
暂无评论内容