如何使用代理配置快速定位接口测试脚本问题?

news2024/11/28 3:37:06

在调试接口用例过程中,如果响应结果和预期结果不一致,则需要检查请求信息。通过代理获取自动化测试中的请求响应信息,对比与正常请求响应的区别,就能够更直观的排查请求错误,相当于编写代码时的 debug 功能。

实战练习

在自动化测试中,不论是 Java 版本还是 Python 版本,均可以通过设置代理来监听自动化测试脚本的请求响应信息。

Python 版本

通过 proxies 参数,监听请求与响应信息。

import requests

# 1. 定义一个代理的配置信息,分别需要设定http协议与https协议的代理地址。

proxy = {

    "http": "http://127.0.0.1:8000",

    "https": "http://127.0.0.1:8080"

}

2. 通过proxies 传递代理配置。


requests.post(url="https://httpbin.ceshiren.com", proxies=proxy, verify=False)

通过 proxies 设定代理信息,代理格式要求为字典类型。默认情况下,verify 是设置为 True 的。将 verify 设置为 False,在发送 HTTPS 请求的时候,Requests 能忽略对 SSL 证书的验证。

Java 版本

import io.restassured.RestAssured;

import static io.restassured.RestAssured.*;

import static io.restassured.specification.ProxySpecification.host;

import static org.hamcrest.core.IsEqual.equalTo;

public class Requests {

    public static void main(String[] args) {

        RestAssured.proxy = host("127.0.0.1").withPort(8080);

        given().relaxedHTTPSValidation().when().get("https://httpbin.ceshiren.com/get").

                then().log().all();

    }

}

使用代理工具验证结果

在实际工作中,使用代理工具(参考常用代理工具章节)结合代理配置可以清楚查看每一次的请求信息,实际操作步骤如下:

  • 抓包工具设置的端口,与代码的代理地址端口保持一致,如下图所示:

如下图所示,在页面发起正常的请求信息,post 请求中,请求数据 key 值为 school,value 值为霍格沃兹测试学社

 

  • 使用自动化测试脚本发起与第2步同样的请求,只是修改 value 值为第二次请求。

Python 版本

import requests

def test_proxy():

    # 1. 定义一个代理的配置信息

    proxy = {

        "http": "http://127.0.0.1:8888",

        "https": "http://127.0.0.1:8000"

    }


    # 2. 通过proxies 传递代理配置

    requests.post(url="https://httpbin.ceshiren.com/post",

                  data={'school': "第二次请求"},

                  verify=False)

 Java 版本

import io.restassured.RestAssured;

import static io.restassured.RestAssured.*;

import static io.restassured.specification.ProxySpecification.host;

public class Requests {

    public static void main(String[] args) {

        RestAssured.proxy = host("127.0.0.1").withPort(8080);

        given().

                contentType("application/x-www-form-urlencoded;charset=utf-8").

                formParam("school", "第二次请求").relaxedHTTPSValidation().

                when().

                post("https://httpbin.ceshiren.com/post").

                then()

                .log().all();

    }

}

抓包工具抓包结果如下图所示:

通过以上案例,可以看出将代理配置和代理工具结合使用,可以非常直观看出两次接口请求的差别,从而提高定位接口测试脚本问题的效率。

最后:下面是配套学习资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

软件测试面试小程序

被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!

涵盖以下这些面试题板块:

1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux

6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础

  全套资料获取方式:点击下方小卡片自行领取即可

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/976126.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

华为数通安全产品介绍

HiSecEngine USG12000系列防火墙(以下简称USG12000系列)是华为公司推出的首款T级AI防火墙,在网络边界实时防护已知与未知威胁,通常部署在云计算数据中心,大型企业及园区网出口,为数据中心、企业及园区网络提…

[MySQL]查看数据库大小

查看库大小 例如:查看当前MySQL中数据总量超过2GB的库: select table_schema as 数据库,table_rows as 记录数,data_size as 数据容量(GB),index_size as 索引容量(MB) from (selecttable_schema,sum(table_rows) as table_rows,sum(truncate(data_leng…

1794086 -F110 清算日期与付款时的付款日期不同

确实没有想到设置的地方在这里。 症状 用户在事务 F110 中执行付款,且清算日期字段 (BSEG-AUGDT) 未设置为付款日期。 重现问题 执行事务 F110 并执行自动付款。完成后,检查凭证中的“清算日期”字段。该日期与付款日期不同。 例如,您具…

jQuery 层次选择器

jQuery 层次选择器 (0)测试前的准备工作 A. 定义测试对象 B. 定义测试对象的 CSS 样式 C. 再定义一些测试用的 button。 (1)所有后代选择器(A B) 所有后代,包括其直接后代及间接后代。 (2)直…

统计学极简入门-统计学简介

1.统计学简介 听说你已经被统计学劝退,被Python唬住……先别着急划走,看完这篇再说! 先说结论,大多数情况下的学不会都不是知识本身难,而是被知识的传播者劝退的。 比如大佬们授课,虽逻辑严谨、思维缜密…

并行计算之OpenMP简介

OpenMP环境安装 基于ubuntu20.04 sudo apt-get update sudo apt-get install libomp-devOpenMP概述 面向多线程并行编码的编译指导语句,如 #pragma omp parallel#pragma omp for#pragma omp sections包含相应的函数接口库和runtime(运行时系统) omp_get_thread_n…

21.SPI万能驱动

spi万能驱动:spidev.c文件 存放在内核/drivers/spi/spidev.c文件。 内核开放的通用版本的spi驱动。 内核集成spidev驱动模块,开机后会中的加载此模块。 支持修改多种spi通信参数。 两个数据类型 spidev_data结构体 fops中的函数结构都要用到&#xff…

C/C++ CMake编译工具轻度使用

目录 CMake编译工具 一、CMake概述 二、CMake的使用 2.1 注释 2.1.1 注释行 2.1.2 注释块 2.2 源文件 2.1.1 共处一室 2.1.2 VIP包房 2.3 私人定制 2.2.1 定义变量 2.2.2 指定使用的C标准 2.2.3 指定输出的路径 2.4 搜索文件 2.3.1 方式1 2.3.2 方式2 2.5 包含…

WebGL射击游戏的优化

myshmup.com 允许在浏览器中创建 shmup(射击)游戏,我们可以使用具有创意通用许可证的资源或上传自己的艺术作品和声音。 创建的游戏可以在网站上发布。 该平台不需要编码,游戏对象的配置是在用户界面的帮助下执行的,后端是使用Django框架开发的,编辑器 UI 用 Javascript …

Spring项目配置

1.创建项目 2.修改编码格式为UTF-8 3.检查或配置代码⾃动补全功能 4.检查或配置⾃动导包 5.检查或配置Maven,可以⽤国内仓库镜像 6.idea识别Maven项⽬:在Notifications视图中会提⽰Load Maven Project,点击即可。 7.开启热部署 a.确认 pom.x…

vue制作页面水印

1.新建一个js js的代码 let watermark {}let setWatermark (str) > {let id 1.23452384164.123412415if (document.getElementById(id) ! null) {document.body.removeChild(document.getElementById(id))}let can document.createElement(canvas)can.width 500can.he…

一文彻底吃透自动化测试框架所有知识

定义测试自动化 在任何行业中,自动化通常被解释为自动处理流程,而这些流程几乎不需要人工干预。在软件行业,测试自动化意味着使用许可版本或开源的自动化工具对软件应用程序执行各种测试。用技术术语来说,测试自动化框架是一组定制…

css自学框架之图片灯箱展示

实现的功能是页面中的图片单击,在灯箱中显示,单击按钮上下切换,单击灯箱退出展示,效果如下GIF展示。 实现步骤还是老样子,三方面工作一是CSS、二是JavaSxcript,三是HTML,下面开始一步一步实现&…

助眠小程序源码系统搭建

一直比较热门的项目,这款系统支持流量主和会员体系的。 用抖音伴侣直播也不错,然后间接引流到自己的小程序,后期还可以卖项目等, 也适合拿来做流量矩阵小程序。也可以用来做其他的声音音乐类的项目 大致功能: 支持流量主支持会员…

运维Shell脚本小试牛刀(五):until循环|循环控制break|continue

运维Shell脚本小试牛刀(一) 运维Shell脚本小试牛刀(二) 运维Shell脚本小试牛刀(三)::$(cd $(dirname $0); pwd)命令详解 运维Shell脚本小试牛刀(四): 多层嵌套if...elif...elif....else fi_蜗牛杨哥的博客-CSDN博客 Cenos7安装小火车程序动画 运维Shell脚本小试…

Photoscan/Metashape 2.0.0中的地面激光扫描处理

在Metashape(原Photoscan)2.0.0, 结构化地面激光扫描和非结构化航空激光扫描都可以使用导入点云(文件>导入>导入点云)命令导入。导入时会保留所有点属性(包括结构化信息)。 本文讨论以下主题 如何将激光扫描数据导入项目&am…

高忆管理:六连板!我乐家居累计涨超77%,公司:存在估值较高风险

9月4日,家具板块继续活泼,同花顺家具板块涨幅达5.46%,顶固集创(300749.SZ)20CM涨停,美之高(834765)涨超12%,帝欧家居(002798.SZ)、亚振家居(603389.SH&#x…

day04_基本数据类型丶变量丶基本数据类型转换

前置知识 计算机世界中只有二进制。那么在计算机中存储和运算的所有数据都要转为二进制。包括数字、字符、图片、声音、视频等。 进制 进制也就是进位计数制,是人为定义的带进位的计数方法 。不同的进制可以按照一定的规则进行转换。 进制的分类 十进制&#x…

sqlserver数据库链接mysql服务器访问数据

sqlserver数据库链接mysql服务器访问数据 关于SqlServer数据库怎么链接mysql数据库我一直不明白,今天项目碰到一个问题需要链接,我就研究了一下,然后就成功了,在这里记录一下。也欢迎朋友互相学习交流借鉴。 1.使用navicat打开S…

推荐6款普通人搞副业做自媒体AI工具

hi,同学们,我是赤辰,本期是赤辰第5篇AI工具类教程,文章底部准备了粉丝福利,看完可以领取!身边越来越多的小伙伴靠自媒体实现财富自由了!因此,推荐大家在工作之余或空闲时间从事自媒体…