2026/2/22 7:00:12
网站建设
项目流程
永州做网站公司,动态域名可以做网站吗,深圳网络品牌,海口手机网站制作1、背景
在日常测试过程中或者研发开发过程中#xff0c;目前接口暂时没有开发完成#xff0c;测试人员又要提前介入接口测试中#xff0c;测试人员不仅仅只是简单的编写测试用例#xff0c;也可以通过一些mock的方法进行来提前根据接口测试的情况进行模拟返回接口的信息目前接口暂时没有开发完成测试人员又要提前介入接口测试中测试人员不仅仅只是简单的编写测试用例也可以通过一些mock的方法进行来提前根据接口测试的情况进行模拟返回接口的信息进行模拟接口各种场景的异常。mock是指模拟也就是模拟接口返回的信息用已有的信息替换它需要返回的信息从实现对所依赖的模块的测试。一般有两种场景前端对后端接口的 mock后端服务之间的测试中涉及的mock常常发生在单元测试的时候。前端mock可以通过一些工具来完成使用抓包工具FiddlerCharles 来实现通过修改代理返回的数据实现多种场景的测试。使用一些API管理工具来模拟比如yapiEasy Mock 等当然有编码能力的也可以使用node.jspython的fastAPI来模拟后端的 Mock 则是从接口的角度如果一个接口A返回的数据需要依赖于另一个接口B当敏捷开发中B接口还未开发完全时候这里会需要用到 Mock。对于测试人员对接口测试的时候部分接口尚未开发完成在约定了接口定义之后也可以使用 Mock 来模拟。今天给大家介绍一款Python Mock工具requests-mock2、工具介绍requests-mock是一个用于模拟HTTP请求的Python库它可以帮助开发人员在测试和开发过程中模拟各种HTTP请求和响应。使用requests-mock可以用来模拟接口的各种场景就像真正的服务器一样。特点灵活性requests-mock允许开发人员根据需要灵活地定义虚拟的HTTP响应包括状态码、头部信息、响应体等。易用性requests-mock的API设计简单易用开发人员可以很容易地集成到他们的测试和开发工作流程中。可扩展性requests-mock支持自定义的响应生成器和请求匹配器可以满足各种复杂的测试需求。适用场景单元测试开发人员可以使用requests-mock模拟HTTP请求和响应以便在单元测试中测试他们的代码。集成测试在进行集成测试时requests-mock可以帮助开发人员模拟外部服务的行为以验证系统的整体功能。开发过程中的快速原型验证在开发过程中开发人员可以使用requests-mock快速验证他们的代码对于不同的HTTP响应的处理情况。通过Mock能够帮助我们模拟系统各种行为包括网络请求、文件读写、数据库操作、系统时间等等。这能够在测试代码时降低对外部依赖的需求从而提高代码的可测试性。3、安装安装必要的模块requests, requests_mock。pip install requestspip install requests_mock4、使用示例示例一使用Mock模拟GET、Post请求以下是一个使用requests-mock模拟GET请求和POST请求的示例import requestsimport requests_mock# 模拟GET请求with requests_mock.Mocker() as m:# 模拟post请求内容返回的json格式返回码为200m.get(http://example.com/api/data, json{name:测试开发技术}, status_code200)response requests.get(http://example.com/api/data)print(response.json())# 模拟POST请求with requests_mock.Mocker() as m:# 模拟post请求内容返回的json格式返回码为200m.post(http://example.com/api/submit,json{name:测试开发技术}, status_code201)response requests.post(http://example.com/api/submit, data{key: value})print(response.json())在上面的示例中我们使用requests-mock模拟了一个GET请求和一个POST请求。在每个模拟的上下文中我们使用requests_mock.Mocker()创建了一个模拟器并使用m.get()和m.post()分别定义了GET请求和POST请求的模拟响应。然后我们使用requests库发送了实际的GET和POST请求并打印了模拟的响应内容。示例二requests-mock在测试脚本中的用法import requestsimport requests_mockdef get_data():response requests.get(http://example.com/api)return response.json()def test_get_data():adapter requests_mock.Adapter()mock_response {status: ok, datas: [{name: 狂师, description: 公众号测试开发技术}]}adapter.register_uri(GET, http://example.com/api, jsonmock_response)with requests.Session() as session:session.mount(http://, adapter)data get_data()assert data[status] okassert len(news_data[datas]) 1assert news_data[datas][0][name] 狂师示例三requests-mock模拟请求错误异常正常请求接口的时候都会出现接口异常情况比如超时哈或者请求服务器异常等操作接下来小编通过requests-mock进行模拟服务器异常的情况。import requestsimport requests_mockfrom requests.exceptions import ConnectionError, Timeoutdef test_exception():with requests_mock.Mocker() as m:# 模拟请求超时处理m.get(http://example.com/api,excTimeout)# 通过pytest.raises进行捕捉异常如果存在异常则判断为passwith pytest.raises(Timeout):requests.get(http://example.com/api,timeout3)# 模拟服务器错误m.get(http://example.com/api, excConnectionError)# 发送请求并断言是否抛出了预期的异常with pytest.raises(ConnectionError):requests.get(http://example.com/api)感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴上万个测试工程师们走过最艰难的路程希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取