zl程序教程

您现在的位置是:首页 >  其他

当前栏目

接口测试从零开始系列_mock技术使用

技术测试接口 系列 从零开始 mock 使用
2023-09-11 14:20:34 时间

1、什么情况下会使用mock技术

(1)需要将当前被测单元和其依赖模块独立开来,构造一个独立的测试环境,不关注被测单元的依赖对象,只关注被测单元的功能逻辑

----------比如被测代码中需要依赖第三方接口返回值进行逻辑处理,可能因为网络或者其他环境因素,调用第三方经常会中断或者失败,无法对被测单元进行测试,这个时候就可以使用mock技术来将被测单元和依赖模块独立开来,使得测试可以进行下去。

(2)被测单元依赖的模块尚未开发完成,而被测单元需要依赖模块的返回值进行后续处理

----------比如service层的代码中,包含对Dao层的调用,但是,DAO层代码尚未实现

(3)被测单元依赖的对象较难模拟或者构造比较复杂

----------比如,支付宝支付的异常条件有很多,但是模拟这种异常条件很复杂或者无法模拟,比如,查询聚划算的订单结果,无法在测试环境进行模拟

2、Mock技术分类

(1)手动构造mock对象

---------------比如,可以自己写某个接口方法的实现,根据需要编写返回值,测试代码中使用该实现类对象

缺点:会增加代码量,在写mock对象代码时,有可能引入错误

(2)使用开源代码提供的构造mock方法

--------------比如easyMock,提供了对接口类的模拟,能够通过录制、回放、检查三步来完成大体的测试过程,可以验证方法的调用种类、次数、顺序,可以令Mock对象返回指定的值或抛出指定异常

3、EasyMock使用

(1)引入easyMock

------------在maven工程中,通过pom配置依赖关系

dependency
    groupId org.easymock /groupId
    artifactId easymock /artifactId
    version 3.0 /version
    scope test /scope
/dependency

------------在普通java工程中,通过添加外部包的方式

(2)使用easyMock过程

1)使用EasyMock生成Mock对象;
pingJiaDao = mockControl.createMock(IPingJiaDao.class);

2)设定Mock对象的预期行为和输出;
EasyMock.expect(pingJiaDao.getGoodPingJiaRate(storeId)).andReturn(0.11);

3)将Mock对象切换到Replay状态;
EasyMock.replay(pingJiaDao);

4)调用Mock对象方法进行单元测试
storeService.setStoredao(pingJiaDao);
double rate = storeService.getStoreGoodRate(storeId);

5)对Mock对象的行为进行验证。
EasyMock.verify(pingJiaDao);

4、其他easyMock功能

(1)特殊的mock对象:niceMock
(2)参数匹配器
(3)重置mock对象
(4)模拟异常抛出
(5)设置调用次数


本文出自seven的测试人生公众号最新内容请见作者的GitHub页:http://qaseven.github.io/


【Eolink Apikit】Mock 解决方案 在开发过程中,由于后端与前端并行开发,或者前端需要等待后台开发,难以保证对接效率,同时即使用开发好的 API 对接,也有可能一个 API 不通就阻塞了整个软件的对接工作。同时对软件的敏感度也很高,一不小心就可能导致整个软件不能正常工作。并且界面之间存在着严重的相互依赖关系,产生的业务逻辑非常复杂,这些都会对软件的开发效率产生很大的影响。 所以学习如何利用最好的 Mock 数据是很关键的。这样做会降低前端开发者的工作量,降低开发费用,提高开发效率。 以下是一些常见的 Mock 方法,我们可以根据具体的场景和条件来进行选择和配置。最关键的是要知道如何去做,并从中挑选出最适合自己的方式。
接口测试数据引发的接口测试代码改进(之一) 顾翔老师开发的bugreport2script开源了,希望大家多提建议。文件在https://github.com/xianggu625/bug2testscript, 主文件是:zentao.py 。bugreport是禅道,script是python3+selenium 3,按照规则在禅道上书写的bugreport可由zentao.py程序生成py测试脚本。
如何通过mock数据提高前端开发效率? 我们在做项目开发的过程中,因为是同步开发,所以前端会有等后端接口的情况。为了前后端并行开发,我们一般会要求后端开发人员先定义好接口文档。这样前端通过模拟数据,就能顺畅地进行前端业务逻辑的开发了。
如何用Apifox 的智能Mock功能? 大家好。继上一章节我们学习了Apifox的前置操作和后置操作,我们基本上学会了如何使用Apifox 去测试一个接口了。现在我们开始学习Apifox的强大的Mock功能。 今天我们学习下最简单的智能Mock 功能。
浅谈Mock平台设计思路 根据不同层次的需求,也是存在不同的mock层级,可以参考下面的金字塔模型,越往上mock的级别越“高”,对于用户(测试)越“可见”。方法、类级别一般是开发会用到,例如单测开发。而接口和服务级别是测试进行服务联调测试甚至系统测试过程会用到的。
接口测试 入门三讲 接口测试到底测什么 接口测试为什么重要? 我相信你一定听说过这样一句话:“测试要尽早介入,测试进行得越早,软件开发的成本就越低,就越能更好地保证软件质量。”但是如何尽早地进入测试,作为软件测试工程师的你,是不是也没办法说得清楚呢?其实上面那句话中的“测试”,所指的并不是测试工程师这个人,而是指包含了单元测试、接口测试、界面测试等一系列质量保障活动的测试工作。