1.什么是mock?

mock测试(mocks)是以可控的方式模拟真实的对象行为。程序员通常创造模拟对象来测试对象本身该具备的行为,类似汽车设计者使用碰撞测试假人来模拟车辆碰撞中人的动态行为。

2.为什么要使用mock?

之所以使用mock测试,是因为真实场景很难实现或者短期实现起来很困难。主要场景有:

  • 真实对象可能还不存在(接口还没有完成开发);
  • 真实对象很难搭建起来(第三方支付联调);
  • 真实对象的行为很难触发(例如,网络错误);
  • 真实对象速度很慢(例如,一个完整的数据库,在测试之前可能需要初始化);
  • 真实对象可能包含不能用作测试(而不是为实际工作)的信息和方法;
  • 真实的对象是用户界面,或包括用户界面在内;
  • 真实的对象使用了回调机制;
  • 真实对象的行为是不确定的(例如,当前的时间或当前的温度)

3.怎么使用mock(两种方法)?

使用mock前,需要先安装:pip install mock ,然后 from mock import Mock

  • 客户端mock

通过代码去制造假的输出(结果)。

接口自动化测试客户端mock:

通过代码去模拟假的接口返回数据。(访问接口的过程就可以省略)

import unittest
from tests.base import ApiCase
from mock import Mockclass TestRequest(unittest.TestCase, ApiCase):def test_request(self):# 1.准备接口访问的数据# 2.调用接口的访问visit()# 3.断言info = {"headers": "", "json": "", "expected": ""}# 接口未完成开发前,使用Mock(return_value="")定义方法返回值,此时不再访问接口self.visit = Mock(return_value="")actual = self.visit(info)# actual = ""self.assertEqual(info["expected"], actual)

接口未完成开发前,使用Mock(return_value="")定义方法返回值,此时不再访问接口,当接口开发完成后,注释掉该行即可。
self.visit = Mock(return_value="")

  • 服务端mock(mock server)

开发的接口是在服务器上的,真实的服务器。但有的时候,接口还没写出来。

我就自己冒充开发人员,写一个假的服务器,写一个假的接口。

mock server的实现:

1)现成的mock服务工具(mockoon)

启动后使用postman调用该接口进行测试:

2)测试开发技术。自己做一个真实的服务出来。确实可以支持更多的响应,会省略很多步骤。

from flask import Flask, requestapp = Flask("py44")@app.route("/member/register")
def register():username = request.form.get("username")pwd = request.form.get("pwd")if username == "pangkunkun" and pwd == "123":return {"code": 1, "msg": "注册成功"}return {"code": 2, "msg": "注册失败"}app.run(debug=True)

代码运行结果:

使用postman调用该接口进行测试:

项目实战-mock测试相关推荐

  1. 功能测试与项目实战之测试需求分析与测试用例设计(重中之重)

    说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 接着上一篇博客继续往下写 :https://blog.csdn.net/qq_41782425/article/details/1 ...

  2. 【接口测试 】Day1-接口测试基础(附项目实战)

    目录 课程目标 课程大纲 接口测试基础 接口及接口测试概念 1. 接口 2. 接口测试 3. 接口自动化测试 HTTP协议 1. HTTP协议介绍 2. URL 3. HTTP请求 4. HTTP响应 ...

  3. SpringBoot Web项目Mock测试

    1.环境准备 Spring-boot官方给我们提供了测试用的场景启动器:spring-boot-starter-test 如果我们用IDEA创建一个spring项目,默认会给我们在pom里面引入这个依 ...

  4. pytest测试实战 电子书_电子书丨Selenium 3+Python 3自动化测试项目实战:从菜鸟到高手...

    ▊<Selenium 3+Python 3自动化测试项目实战:从菜鸟到高手> 田春成 著 电子书售价:39.5元 2019年9月出版 Selenium是目前非常流行的一种自动化测试工具.本 ...

  5. NHibernate+WCF项目实战(四)使用WAS对Webservices接口进行压力测试

    NHibernate+WCF项目实战 第一篇.项目介绍与搭建: 第二篇.使用NHibernate实现数据访问并进行单元测试: 第三篇.使用WCF对外提供Webservices接口并进行单元测试: 第四 ...

  6. 《软件测试技术大全:测试基础 流行工具 项目实战(第3版)》—第1章1.2节软件测试的发展...

    本节书摘来自异步社区<软件测试技术大全:测试基础 流行工具 项目实战(第3版)>一书中的第1章,第1.2节软件测试的发展,作者陈能技 , 黄志国,更多章节内容可以访问云栖社区"异 ...

  7. android实现单词测试功能,android项目实战-背呗单词DEV07-单词测试实现(示例代码)...

    该篇说明 该篇我们进行单词测试实现讲解 也就是单词测试界面WordExamActivity中功能 布局也需要在xml中实现 但是也需要有单词测试视图类来设置一些值具体查看对照源码 在该界面中,测试完后 ...

  8. 【网络通信 -- SIP 电话】项目实战记录 -- SIP 服务器 OPENSIPS 搭建测试与 SIP 客户端 PJSIP 编译安装测试

    [网络通信 -- SIP 电话]项目实战记录 -- SIP 服务器 OPENSIPS 搭建测试与 SIP 客户端 PJSIP 编译安装测试 [1]SIP 服务器 OPENSIPS 搭建 1.1 安装环 ...

  9. Vue + Spring Boot 项目实战(三):前后端结合测试(登录页面开发)

    前面我们已经完成了前端项目 DEMO 的构建,这一篇文章主要目的如下: 一.打通前后端之间的联系,为接下来的开发打下基础 二.登录页面的开发(无数据库情况下) 本篇目录 前言:关于开发环境 一.后端项 ...

最新文章

  1. 我是怎么提高单片机编程能力的?
  2. Codeforces Round #686 (Div. 3) F. Array Partition(二分+线段树)
  3. SWPU 2021年团队程序设计天梯赛选拔赛 题解
  4. 高通首次推出AI引擎 打包所有软硬件算力
  5. 疫情下的硅谷区块链创业者
  6. apt 根据注解,编译时生成代码
  7. java内存溢出总结(1.8)
  8. t470键盘拆解_ThinkPad T470拆机图赏:堪称商务本的业界标杆
  9. linux添加用户及登录密码,linux 创建账户和密码
  10. Android Java 中英混合字符串 去掉中文之间的空格,同时保留英文单词之间的空格
  11. ORACLE 数据泵之NETWORK_LINK
  12. 201521123091 《Java程序设计》第11周学习总结
  13. win10基于QT开发手机安卓App
  14. hp 服务器主板如何查看型号,hp台式电脑主板型号怎么查看
  15. Scrapy爬取豆瓣读书全站
  16. 下载夜神模拟器-安装autojs-连接vscode
  17. C++性能之战(1)--深入到汇编看++i、i++、i+=1、i=i+1的区别
  18. VB出现“找不到DAO350.DLL”错误
  19. 二见钟情之SQL语句嵌套查询
  20. 2020年联通服务器维护,2020年12月17日停机维护公告

热门文章

  1. 必看![文心一言] 中国版ChatGPT“狂飙,傲视诛仙
  2. 前端通过range控制的rgba配色小工具
  3. Android 优酷
  4. 2007年,学习沟通能力和多交朋友
  5. 数据结构——HashMap(内含图形演示)
  6. Token最核心的价值是建立一套激励机制,INE智联生态一直在践行!
  7. 往事如烟 - 花老哥
  8. 如何搭建一个企业级BI?
  9. 数据库 模式 视图 索引
  10. iOS开发--底层开发之越狱开发第一篇