首页 > 其他分享 >postman自动化

postman自动化

时间:2024-12-13 17:59:01浏览次数:3  
标签:postman 请求 示例 接口 key 自动化 变量 pm

一、新建一个接口测试脚本

  1. 创建一个Collection
  2. 创建一个接口请求

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

相关文章

  • Odoo18免费社区版销售+采购+仓库+制造(生产报工)+外包全流程自动化
    Odoo是一套全球流行的开源企业资源计划(ERP)软件,以其模块化、低代码和开源的特性,获得了全球数百万用户的青睐。‌现在国内使用Odoo的企业也越来越多。相对于国内大多数ERP软件虽然上手难一些,但Odoo非常强大,配置很灵活。最主要的一点是它不要钱,单社区版用的好完全可以满足大部......
  • 如何梳理 RPA 自动化场景
    以下是10个关于如何梳理RPA自动化场景的创新点子:一、财务领域发票自动核验与归档:创新点:利用OCR技术识别发票信息后,不仅进行常规的真伪核验,还可以根据发票类型、金额大小等自动分类归档到不同的电子文件夹中,并生成可视化的发票统计报表,方便财务人员随时查看各类发票的......
  • postman ApiFox 全自动登录实现方式 前置脚本
    //定义发送登录接口请求方法functionsendLoginRequest(){//获取环境里的前置URLconstbaseUrl=pm.request.getBaseUrl();console.log(baseUrl)//构造一个POSTx-www-form-urlencoded格式请求。这里需要改成你们实际登录接口的请求参数。cons......
  • rest-assured实现java接口自动化测试
    1.导包导入importio.restassured.response.Response;2.使用2.1请求四要素:请求方式,请求路径,请求参数,请求头given()在什么场景下(请求头,请求参数,cookies等等)when()执行什么操作(get,post)then()判断结果(显示日志,返回接口的结果)2.2获取响应结果then().......
  • 【接口自动化_进阶】2.0版python接口自动化自建库
    项目介绍目前常见的接口自动化框架,数据维护方式分为两种,一种是维护到文件,另一种维护到代码中。文件方式维护优点:可读性和可维护性好易上手缺点:性能较差些用例设计和使用不灵活冗余数据较多扩展性差代码中维护优点:灵活性高性能高代码及数据复用率高缺点:可读......
  • DocFlow票据AI自动化处理工具:出色的文档解析+抽取能力,提升企业文档数字化管理效能
    近期,DocFlow票据自动化产品正式在TextIn平台上线。DocFlow是一款票据AI自动化处理工具,支持不同版式单据智能分类扩展,可选功能插件配置流程,满足多样业务场景。随着全球化与信息化进程,企业的文件、信息、数据吞吐量不断增长,2020年以来,业务形势的变革再次加速了企业对先进的文档数字......
  • 自动化处理: Unhandled exception. System.IO.IOException: The configured user limit
    #!/bin/bash#设置root密码为环境变量exportROOT_PASSWORD="your_root_password_here"#检查是否以普通用户运行if["$EUID"-eq0];thenecho"不要以root权限直接运行此脚本"exitfi#打印当前的max_user_instances值echo"当前的max_user_instances值:"su......
  • 信而泰推出POE交换机一站式自动化测试方案
     方案背景传统POE交换机测试工序主要有扫条码,接网线,POE供电测试,流量测试,LED测试,信息核对等,基本都依赖于手工操作,效率偏低,并且LED测试,POE供电测试依赖人工判断是否良品,容易误测。如果再考虑到操作员工变动等因素,培训员工的时间,员工操作方法不统一等情况都会导致生产效率降低与测......
  • C#自动化处理: Unhandled exception. System.IO.IOException: The configured user lim
    usingSystem;usingSystem.Diagnostics;classProgram{//定义root密码(请用你的实际密码替换)privateconststringRootPassword="your_root_password_here";staticvoidMain(){try{//需要执行的命令列表......
  • 自动思维链(Auto-CoT):LLM推理能力的自动化提升
    大型语言模型在处理自然语言任务时,通常依赖于大量的训练数据和复杂的神经网络结构。尽管这些模型在生成文本和回答问题方面表现出色,但在面对需要复杂推理的任务时,它们的表现往往不尽如人意。为了克服这一挑战,研究人员开发了一种名为“思维链”(Chain-of-Thought,CoT)的引导方法。C......