Mock接口测试

本文介绍了Mock测试的概念及其在前后端协同开发中的作用,特别是在后端接口未完成时,如何利用Flask搭建模拟服务器来提供测试接口。通过示例展示了如何用Flask编写一个简单的模拟接口,并提供了客户端的请求代码。这种方式可以提高测试效率,减少对真实接口的依赖。
摘要由CSDN通过智能技术生成

1、mock测试
mock测试就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。

2、mock作用
前后端开发进度不一致,如果前端开发速度快于后端,需要一个假的接口用于模拟后端返回;
项目需要用到第三方接口,如果第三方接口未开发好,或者第三方接口没有测试环境,为了保证进度,需要模拟接口用于调试。

3、mock不足
mock的模拟行为与真实行为可能存在差异(返回结果是自己构造的),其结果就是虽然基于mock的测试通过了,但是基于真实对象的测试可能会存在失败。

Mock 一个 Server ,构造一个假的服务返回预期的结果,也是为了进行自己的测试。主要适用于接口&性能测试,Mock 方案和程序使用的语言无关,可以用 Java 实现,也可以用 Python 实现等。

Flask的特点是:结构简单,容易入门,利用Flask编写一个最简单的接口,如果没有Flask,则需要安装;
Flask的安装

pip install flask

如果pip没有安装的话,先执行如下代码进行安装pip:

curl https://bootstrap.pypa.io/get-pip.py | python3

安装成功,可以通过

pip --version

查看pip的版本。

下面是Mock 一个 Server ,构造一个假的服务返回预期的结果。
服务端代码:


from flask import Flask,request,json

app=Flask(__name__)

@app.route('/trade/purchase' ,methods=['POST'])
def purchase():
    res=json.loads(request.get_data())
    out_trade_no=res['out_trade_no']
    data = {
        'code':'400004',
        'msg':'Business Failed',
        'sub_code':'ACQ.TRADE_HAS_SUCCESS',
        'sub_msg':'交易已被支付',
        'trade_no':'222222222222',
        'out_trade_no':'20150320010101002'
    }
    data['out_trade_no'] = out_trade_no
    if out_trade_no != '20150320010101002':
        return {'code':'404','msg':'请求失败!'}

    return data

if __name__  ==  '__main__':
    app.run('127.0.0.1', '9999')

客户端代码:

import requests

data={
    'out_trade_no':'20150320010101001',
    'auth_code':'28763443843945664',
    'buyer_id':'2088201954065786',
    'seller_id':'2088102146225135',
    'subject':'Iphone6',
    'total_amount':'88.88',
}

resp=requests.post('http://127.0.0.1:9999/trade/purchase',json=data)
print(resp.json())

运行截图:
在这里插入图片描述
通过对真实的调用信息进行发起请求,生成模拟的返回结果,大大简化了测试对调用接口的依赖,大大提高测试效率。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值