python ----pytest_mock学习总结

本文详细介绍了如何使用pytest_mock进行接口自动化测试中的模拟操作,重点在于mocker.patch的使用,强调了模拟对象路径及返回值的设置,提供了多个参考资料链接作为进一步学习的入口。
部署运行你感兴趣的模型镜像

最近做接口自动化测试的时候,针对第三方接口,想通过mock形式实现,网上大多资料都是关于unittest.mock的方法。

本文主要总结利用pytest_mock实现模拟过程

官方文档中对pytest_mock的介绍,使用方法类似unittest.mock,他们具有相同的api和参数

官方文档:https://pypi.org/project/pytest-mock/

unittest.mock的中文官方文档:https://docs.python.org/zh-cn/dev/library/unittest.mock.html

导图

代码样例:

common包内的mock_data.py


import requests
class PaymentType():
    def payapi(self):
        url = 'http://..........'
        headers = '{"Content-Type": "application/json"}'
        request_data = {
        "memberId": "#############",
        "wxOpenid": "#########",
        "sourceCode": "wxapp"
    }
        res = requests.post(url=url,headers=eval(headers),json=request_data)
        result = res.json()
        return result['obj']['paymentTypeV2']   #返回具体的支付方式代码

    def paymenttype(self):
        res = self.payapi()
        if res == {'SCORE': 1}:
            print('-------')
            print('支付分')
            return '支付分'
        elif res == {'SCORE': 0,'online': 1}:
            return '在线支付'

测试用例:



import pytest
from common import mock_data

class TestMock():

    def test_payment_type(self,mocker):
        pay=mock_data.PaymentType()
        pay.payapi=mocker.patch('common.mock_data.PaymentType.payapi',return_value={'SCORE': 1})
        status = pay.paymenttype()
        print('======')
        print(status)
        assert status == '支付分'
        print('成功')

if __name__ == '__main__':
    command = '-q test_mock_data.py::TestMock::test_payment_type'
    pytest.main(command)

值得注意的是:mocker.patch 的第一个参数必须是模拟对象的具体路径,第二个参数用来指定返回值

参考:https://note.qidong.name/2018/02/pytest-mock/

https://www.cnblogs.com/linuxchao/p/linuxchao-mock.html

http://www.voidcn.com/article/p-cdwrlyha-b.html

http://www.voidcn.com/article/p-obldajoo-bxs.html

https://www.cnblogs.com/yoyoketang/p/9348320.html

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值