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

相关推荐
liuhaoran___11 分钟前
解释区块链技术的应用场景和优势
python
独好紫罗兰13 分钟前
洛谷题单2-P5712 【深基3.例4】Apples-python-流程图重构
开发语言·python·算法
爱学测试的雨果18 分钟前
Postman —— postman实现参数化
软件测试·功能测试·测试工具·lua·postman
东方佑28 分钟前
深度解析Python-PPTX库:逐层解析PPT内容与实战技巧
开发语言·python·powerpoint
Python大数据分析@37 分钟前
python 常用的6个爬虫第三方库
爬虫·python·php
一顿操作猛如虎,啥也不是!44 分钟前
JAVA-Spring Boot多线程
开发语言·python
斯内科1 小时前
Python入门(7):Python序列结构-字典
python·字典·dictionary
云徒川1 小时前
【设计模式】过滤器模式
windows·python·设计模式
橘猫云计算机设计2 小时前
基于django优秀少儿图书推荐网(源码+lw+部署文档+讲解),源码可白嫖!
java·spring boot·后端·python·小程序·django·毕业设计
互联网杂货铺2 小时前
如何用Postman实现自动化测试?
自动化测试·软件测试·python·测试工具·测试用例·接口测试·postman