当前位置: 首页 > article >正文

【软件测试】--xswitch将请求代理到测试桩

背景

在做软件测试的过程中,经常会遇见需要后端返回特定的响应数据,这个时候就需要用到测试桩,进行mock测试。
测试工程师在本地模拟后端返回数据时,需要将前端请求数据代理到本地,本文介绍xswitch插件代理请求到flask框架下的测试桩。

原理

在这里插入图片描述

浏览器发起的请求,本应该发送到后端服务器,服务器返回响应报文
但是通过XSwitch 代理到本地服务进行响应

XSwitch 插件的使用

1. 下载 XSwitch插件的安装包

Chrome浏览器下载插件: https://crxdl.com/

2.解压下载的插件包

解压出来后有个crx文件
在这里插入图片描述

3. Chrome安装插件

进入Chrome设置,有个扩展程序
在这里插入图片描述

打开开发者模式,将刚刚解压的crx文件拖入扩展程序,稍等一会便可安装成功
在这里插入图片描述

XSwitch的使用

按照后,在插件中可以找到
在这里插入图片描述

点击后,点击最后一个图标可以进入全屏
在这里插入图片描述

然后浏览器访问网站,找到要模拟返回的接口,我这里要返回这个商品评价的接口
在这里插入图片描述
在这里插入图片描述
将接口的地址,与代理的地址值设置到xswitch插件中,启动插件
在这里插入图片描述

{
  "proxy": [
    [
      "http://192.168.150.138:8080/method/tradeComment/list.htm", // 请求的服务器接口地址
      "http://127.0.0.1:8888/test1", //本地的测试桩地址
    ],
  ],
}

其中http://192.168.150.138:8080/method/tradeComment/list.htm 为本来的接口地址。
http://127.0.0.1:8888/test1为本地测试桩的地址,基于flask框架写的。

python-flask框架模拟返回

这里只做演示

from flask import Flask, make_response, request
from flask_cors import CORS


app = Flask(__name__)
CORS(app)


@app.route("/test1", methods=['GET','POST', 'OPTIONS'])
def index():

    data =  {
    "next": 1,
    "grade2Count": 0,
    "last": 1,
    "grade1Count": 3,
    "prev": 1,
    "isLastPage": True,
    "count": 4,
    "page": {
        "count": 4,
        "pageSize": 20,
        "pageNo": 1,
        "pageURL": "/method/tradeComment/list.htm?pId=4528&grade=&isFirst=true&pageNo=",
        "beyondPage": False,
        "length": 8,
        "slider": 1,
        "message": "",
        "list": [
            {
                "id": 1436,
                "createDate": "2024-09-16 10:46:20",
                "updateDate": "2024-09-16 10:46:20",
                "commentId": 1436,
                "storeId": 1814,
                "skuId": 18197,
                "orderId": 18042500001011,
                "content": "测试测试测试测试",
                "grade": "5",
                "productScore": "",
                "serviceAttitudeScore": "5",
                "deliverySpeedScore": "5",
                "type": "0",
                "isShow": "1",
                "tradeCommentImageList": [],
                "uid": 621,
                "pid": 4528
            }
        ],
        "html": "<ul>\n<li class=\"disabled\"><a href=\"javascript:\">&#171; 上一页</a></li>\n<li class=\"active\"><a href=\"javascript:\">1</a></li>\n<li class=\"disabled\"><a href=\"javascript:\">下一页 &#187;</a></li>\n<li class=\"disabled controls\"><a href=\"javascript:\">跳到 <input type=\"text\" value=\"1\" href=\"/method/tradeComment/list.htm?pId=4528&grade=&isFirst=true&pageNo=\" onkeypress=\"var e=window.event||this;var c=e.keyCode||e.which;if(c==13)window.location.href=this.getAttribute('href')+(this.value)\" onclick=\"this.select();\"/> 共 4 条</a></li>\n</ul>\n<div style=\"clear:both;\"></div>",
        "firstResult": 0,
        "maxResults": 20
    },
    "isFirstPage": True,
    "grade3Count": 0
}
    # resp = make_response(data)

    return data


app.run("127.0.0.1", 8888)
  • data 字典为响应报文。

注意

  • 使用flask写接口响应时,请求方式中要运行 OPTIONS
  • 还需要加入 CORS在这里插入图片描述

实例

1、XSwitch设置好代理地址
在这里插入图片描述

2、python flask 写好模拟返回端
在这里插入图片描述

3、浏览器再次请求,返回测试桩响应的报文
在这里插入图片描述
在这里插入图片描述
真正的请求被代理到了 http://127.0.0.1:8888/test1


http://www.kler.cn/a/315357.html

相关文章:

  • HP G10服务器ESXI6.7告警提示ramdisk tmp已满
  • 阿里云和七牛云对象存储区别和实现
  • 从0开始学习Linux——文件管理
  • 使用etl工具kettle的日常踩坑梳理之二、从Hadoop中导出数据
  • 【学习】Fine-tuning知识汇总
  • qt QProcess详解
  • 【linux】df命令
  • 『玉竹』基于Laravel 开发的博客、微博客系统和Android App
  • Android 命令行关机
  • Google 官方数据库框架Room使用教程
  • 【MySQL 03】表的操作
  • mpls 动态LSP的标签发布协议
  • TCP/IP - IP
  • 鸿蒙NEXT生态应用核心技术理念:统一生态,原生智能
  • web自动化学习笔记
  • K8s 之控制器的定义及详细调用案例
  • SpringBoot 整合 Caffeine 实现本地缓存
  • UDP_SOCKET编程实现
  • 行阶梯形矩阵的定义,通过正例和反例说明如何判断一个矩阵是不是行阶梯形矩阵
  • 9月22日,每日信息差
  • 基于python+django+mysql+Nanodet检测模型的水稻虫害检测系统
  • 基于Python+SQLite的课程管理系统
  • Spring boot中常用注解解释
  • 汽车焊机数据通信:Profinet转Canopen网关的神奇连接
  • 新160个crackme - 062-syllogism-crackme1
  • GlusterFS 分布式文件系统