一、新建一个接口测试脚本
- 创建一个Collection
- 创建一个接口请求
Get请求示例:
Post请求示例
从以上两个示例来看一个请求的基本组成:
-
- Method:get/post/put/delete等
- url:http://xxxx
- Headers:Content-Type等
- 参数:Params / Body
二、 变量的设置与使用
同一个参数被多个请求引用时,为了使用更方便,可以将参数设置为变量。
以上示例中,两个接口共同引用了“test”的环境中的变量“domain”。
2.1 变量的作用范围
Postman 支持不同范围的变量,不同的变量作用域适用于不同的任务。从最宽到最窄的顺序,范围分别是:global、collection、environment、data和local
- 全局变量global - 能够访问集合、请求、测试脚本和环境之间的数据。全局变量在整个工作区中都可用
- 集合变量collection - 在集合中的整个请求中都可用,并且独立于环境。
- 环境变量environment - 可以将工作范围限定到不同的环境,例如本地开发与测试或生产
- 数据变量data - 来自外部 CSV 和 JSON 文件,在使用Newman或Collection Runner运行集合时可以使用。在请求或收集运行之后不会持续存在。
- 局部变量local - 是在请求脚本中访问的临时变量。局部变量值的范围仅限于单个请求,并且在运行完成后不再可用。
2.2 定义变量
1)手动设置变量
2)将请求构建器中的数据设置为变量
3)将现有变量的值设置为请求响应正文中的值
4)使用脚本自定义变量 pm.范围级别.set('key')
可以在请求脚本中自定义变量(Pre-request Script / Tests)
pm.globals.set("key", "value"); //设置全局变量
pm.collectionVariables.set("key", "value"); //设置集合变量
pm.environment.set("key", "value"); //设置环境变量
pm.variables.set("key", "value"); //设置局部变量
pm.environment.unset("key"); //删除变量
2.3 使用变量
1)在请求构建器中引用变量,可直接使用双花括号,URL、Params、Authorization、Headers、Body中均能以该形式使用变量
例如:{{domain}}
如果在两个不同的作用域中声明了同名变量,则将使用存储在具有最窄作用域的变量中的值。
2)除定义变量以外,postman也提供了可以直接使用的动态变量,
例如:{{$timestamp}} - 当前unix时间戳,单位秒;
{{$randomInt}} - 1000以内随机整数。
更多动态变量可直接参考postman动态变量。
3)在脚本中使用变量:pm.范围级别.get('key'),
例如:
pm.globals.get("variable_key"); //引用全局变量
pm.collectionVariables.get("variable_key"); //引用集合变量
pm.environment.get("variable_key"); //引用环境变量
pm.variables.get("variable_key"); //引用当前最高优先级的任何变量,不限制变量范围
三、 编写脚本
postman支持的脚本语言为JavaScript,我们在执行测试时,可以在Scripts 选项卡下输入JavaScript代码,用来构建可以包含动态参数的请求、在请求之间传递数据等。
Pre-request:在请求发起前运行,通常用于变量赋值或者进行一些计算处理等等
Post-response:请求执行后运行,通常用于断言和响应结果参数化
单个接口的执行顺序:Pre-request >> request >> Post-response
示例1:登录接口中sign参数由username+password+timestamp+password进行md5加密得到,可以利用预处理脚本实现请求参数加密(加密计算>结果参数化)
参数化前:
参数化后:
示例2:断言(在Tests脚本中直接添加断言代码)
四、多个请求间的参数传递
示例1:登录成功后,利用token获取商品类目(在登录接口Tests中编写脚本,将返回的token参数化,获取商品类目接口直接引用token)
示例2:获取类目后,查询第一个类目下的所有sku(类目接口返回的第一个id参数化,下一个接口根据类目id查询sku)
示例3:得到sku列表后,随机选择一个sku查询详情(列表接口返回结果中,任选一个sku参数化,详情接口查询该sku的商品详情)
五、Collection自动化执行
所有接口录入后,点击run collection,能自动执行集合内的所有接口
除接口能添加预处理脚本和测试脚本外,集合和文件夹也能添加脚本,三者之间脚本执行顺序为:集合Pre-request Script >>文件夹Pre-request Script >> 请求Pre-request Script >> 请求 >> 集合Post-response>>文件夹Post-response >>请求Post-response,集合与文件夹脚本在执行接口请求时均为执行一次,可以根据需要将类似初始化或共用的断言写入不同层级的脚本中。
标签:postman,请求,示例,接口,key,自动化,变量,pm From: https://www.cnblogs.com/RonnieQin/p/18605484