如何理解软件测试中的stub和mock?

[复制链接]
1887|5
手机看帖
扫描二维码
随时随地手机跟帖
keer_zu|  楼主 | 2022-10-14 09:12 | 显示全部楼层 |阅读模式
技术简介
mock技术又叫测试桩、挡板
在软件测试中,对于一些不容易构造、获取的对象,用一个虚拟的对象来代替它,以达到相同的效果,这个虚拟的对象就是mock。
mock技术并不是只有测试领域用,最早是在开发领域应用,典型例子:前后端联调。比如一个功能,前端功能写完了,但是后端还没做好,前端可以使用mock技术模拟后端发过来的数据,查看效果。



作者:测试菜鸟
链接:https://www.zhihu.com/question/28225706/answer/2349461056
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

测试行业中的应用场景
1.某个新需求,开发未完成,测试人员使用mock技术,把新增的业务使用mock技术模拟出来,进行初步测试,等开发人员开发完成,再进行真实环境测试。
2.在项目中,经常会用到很多第三方接口,比如充值、防沉迷验证。第三方接口返回效率低、环境搭建麻烦,可以使用mock技术,先测试整体流程。
怎么用mock?1.测试团队开发--技术要求高,使用django、flask等2.使用现成工具  postman、fiddler等
3.不写代码,使用框架(moco)去创建mock   moco.jar+xxx.json  (简单)
mock服务
实现mock的技术有很多,这些技术中,可以分为两类--mock数据和mock服务。
  • mock数据:即mock一个对象,写入一些想要的数据,通过它进行自己想要的测试,常用的有:EasyMock、WireMock等,多用于单元测试。
  • mock服务:即mock一个sever,构造一个依赖服务并给予他预期的服务返回值,适用范围广,更加适合集成测试,如moco框架。
本文主要介绍测试中常用的moco框架。
moco可以理解为一个mock的工具框架,一个简单搭建模拟服务器的工具,下载下来是一个jar包。
特点:
1.只需要简单地配置request、response等即可满足需求
2.支持http、https、socket协议,非常灵活
3.支持在request中设置Headers、Cookies、StatusCode等
4.支持get、post、put、delete等请求方式
5.无需环境配置,有Java环境即可
6.支持热更新,修改配置后,立即生效,只需要维护接口即可
7.支持多种数据格式,如json、text、xml、file等
8.可与其他工具集成,如Junit、Maven等




使用特权

评论回复

相关帖子

keer_zu|  楼主 | 2022-10-14 09:17 | 显示全部楼层
mock服务环境搭建mock服务搭建很简单,moco框架是用java开发的,所以启动moco前,需要安装java环境--jdk。1.下载mocogithub下载地址:

https://github.com/dreamhead/moco

217926348b8914c120.png




使用特权

评论回复
评论
keer_zu 2022-10-14 09:17 回复TA
点击这个直接下载即可。如果打不开网址,也可以在公众号后台回复‘moco’直接获取jar包 
keer_zu|  楼主 | 2022-10-14 09:19 | 显示全部楼层
2.写一个简单的配置文件
我们在刚才下载的jar包目录下写一个最简单的json配置文件

182986348b8c90fffc.png
我们写2组数据,根据url返回相应的数据。
url是‘xpzc’则返回‘Hello,自动化测试研习社’
url是‘dah’则返回‘奥运健儿加油!!!
注意:json里的url要写成‘uri’
141456348b913bafa9.png
json里面的key名是有规则的,不能随意写,否则jar包读取不到会报错的。
  • description:注释/描述
  • request:请求数据
    • uri:即url,接口的统一资源标识符,可根据接口自定义
    • method:请求方式,默认为get请求
  • response:返回的数据
    • text:返回text格式









使用特权

评论回复
keer_zu|  楼主 | 2022-10-14 09:20 | 显示全部楼层
3.启动moco
有了jar包和json数据,就可以启动moco了。
打开cmd,切到jar包所在的路径,执行指令:

java -jar jar包名 请求方式 -p 端口号 -c json文件
例如:
java -jar moco-runner-1.3.0-standalone.jar http -p 9999 -c test1.json
  • jar包名称对应自己下载的jar包名
  • 请求方式包括http、https、scoket协议等
  • -p 端口号,就是我们自己定义的端口号,避开8080、3360这些常用的即可
  • -c json文件,就是我们前边写的json文件名
136956348b96f89263.png

出现如图信息就启动成功了。

使用特权

评论回复
keer_zu|  楼主 | 2022-10-14 09:21 | 显示全部楼层
4.验证
这时候就可以打开浏览器验证下了。
857286348b98c0f3b1.png
671736348b993be73a.png
这样,我们自己模拟的后端就设置完成了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:qq群:49734243 Email:zukeqiang@gmail.com

1303

主题

12221

帖子

53

粉丝