【软件测试】--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

相关推荐
明月_清风39 分钟前
FastAPI 从入门到实战:3 分钟构建高性能异步 API
后端·python·fastapi
bellus-1 小时前
ubuntu26测试win10的ollama大模型性能
python
水木流年追梦1 小时前
大模型入门-Reward 奖励模型训练
开发语言·python·算法·leetcode·正则表达式
JavaWeb学起来1 小时前
Python学习教程(六)数据结构List(列表)
数据结构·python·python基础·python教程
liuyunshengsir1 小时前
PyTorch 动态量化(Dynamic Quantization)
人工智能·pytorch·python
电子云与长程纠缠1 小时前
UE5制作六边形包裹球体效果
开发语言·python·ue5
DFT计算杂谈1 小时前
KPROJ编译教程
java·前端·python·算法·conda
念恒123062 小时前
Python(循环中断)
开发语言·python
tsfy20032 小时前
Python 处理中文文件名的3个坑(附 Flask 上传解决函数)
开发语言·python·flask·文件上传·中文编码
AI技术控2 小时前
KV Cache 缓存机制的原理和应用:从 Transformer 推理到大模型服务优化
人工智能·python·深度学习·缓存·自然语言处理·transformer