mock框架工具(mock 框架)

网友投稿 332 2023-05-02


本篇文章给大家谈谈mock框架工具,以及mock 框架对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享mock框架工具的知识,其中也会对mock 框架进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

『居善地』接口测试 — 21.Mock功能介绍(二)

当需要调用接口来编写测试用例的时候mock框架工具,此时该接口并没有被实现,这个时候我们就可以用Mock框架来模拟一个接口出来。

使用Mock模拟接口以下功能:

编写一个Json文件,接口所有的信息都配置在该json文件中。

把Moco框架的jar包和上面编辑好的Json文件放在同一个文件夹中。

在cmd命令行或者PyCharm的命令行终端执行启动命令。

Moco服务启动后,我们可以使用Requests库请求接口,也可以用浏览器接口。

浏览器访问接口:

我们主要是看Json文件怎么写,其mock框架工具他步骤和上面练习一样。

1)、没有参数的get请求

2)、有参数的get请求

说明:请求地址为: api/moco/get/param/demo?name=xiaomingage=18

1)、没有参数的post请求

提示:POST请求就不能用浏览器进行查看mock框架工具了。只能用Request库或者JMeter,Postman等进行查看。(能进行接口调用的工具都可以)

2)、有参数的post请求

调用接口查看结果。

使用的是 request 中的 cookies 属性。

1)、get请求

调用接口查看结果。

2)、post请求

调用接口查看结果。

使用的是 request 中的 headers 属性。

Header 是添加请求头信息,关于请求头信息get请求和post请求都是一样的。

调用接口查看结果。

重定向使用的是和 request 同级的 redirectTo 属性。

使用浏览器进行测试就可以。

Json文件的配置属性说明:

像我们上面练习过的Json文件配置,所有的数据值是固定的,

如: description 、 request 、 response 、 redirectTo 等这些都是固定的,不能修改,修改可能连Moco服务都启动不来。

还有 request 的属性值,如: uri 、 method 、 cookies 、 headers ,也是必须这样写的。

还有GET请求传递参数用 queries 属性,POST请求传递参数用 forms 和 json 属性都可以。(PUT,DELETE请求同Post请求。)

Moco框架原理:

就是把所有接口的数据,包括发送请求的所有数据和返回结果的所有数据,以Json数据格式进行编写。

把这些数据放入Moco框架提供的HTTP或者HTTPS的服务上,就实现了接口数据的模拟。

在使用的时候,我们只要按照json文件中接口配置的信息进行请求即可,如果调用接口传递的数据和Json文件中接口编写要接收的数据不一致,则无法请求成功。

Mock测试有哪些应用场景,有没有常用的工具推荐

1、安卓黑盒测试工具
1)包括本身自带的monkey,Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中
2) robotium与appium,这些工具用于黑盒的自动化测试。可以在有源码或者只有APK 的情况下对目标应用进行测试。提供了模仿用户操作行为的API,比如在某个控件上点击,输入Text
等等。(推举你可以研究一下这个工具,开源的,我有资料)
2、白盒测试,Android在SDK中集成了JUnit框架。所以,你可以基于JUNIT框架进行安卓的白盒测试代码开发
3、安卓的测试方法其实与web测试方法大多类似,只是多了一些特殊的测试场景,例如-遍历测试、故事驱动、适配测试、电量测试、弱网测试、流量测试等
4、兼容性测试的话,一是可以利用虚拟机保证系统间的兼容性,但更多的还需要依靠真机测试,因为每个真机的上层API使用和渲染是不太一样的
如果你想要什么资料的话或者想一起学习研究的话,可以给我发邮件:test_sunny@hotmail.com

优雅单测-3用Mockito轻松解决复杂的依赖问题

Mockito是GitHub上用于Java使用最广泛mock框架工具的Mock框架

Mockito核心解决的问题:不管是测试驱动开发mock框架工具,还是系统架构本身,都会带来的依赖结构复杂问题;单元测试做软件中的最小可测试单元,只应依当前单元的配置。 所有较大的系统都会有依赖复杂的问题。 此类问题就需要Mock框架来解决

使用很简单一般分3部:

@MockBean,在SpringBoot中通过@MockBean注解,就可以快速装在一个Mock的Beanmock框架工具了。

此方式通过非常简单的方式解决mock框架工具了系统层级之间单测的依赖,可以用在数据层和业务层,也可以用在业务层之间的多项依赖等依赖上的问题

直接执行:

可以看到如果使用mock框架工具了SpringBoot,并且使用@MockBean可以快速解决依赖的问题。但是,Mock出的LiveReportMapper对象其实是个空壳,那么既然是mock就要知道如何通过mock的方式解决各种复杂逻辑

下面模拟2种复杂逻辑,Service层的单元测试mock依赖的另外一个Service类"InfoService" ,并且mock里面的2个方法

下面看例子:

如果没有SpringBoot环境的Starter,可以直接使用Mockito。 除了@MockBean不能使用其他功能不受影响,参考上面例子

更多用法参考Mockito官方文档,此处不做赘述

官网地址: https://site.mockito.org/

基于Junit5+PowerMock的单元测试框架

前置

基于上面的场景,本文描述基于Junit+PowerMock+Mockito进行单元测试的方案中可能存在的小部分问题,PowerMock作为弥补Mockito无法mock类中静态、私有、final变量、方法及构造函数等不足的一扩展工具,在使用时还是可能会存在比较多坑:

PowerMock与Mockito的版本需要对应起来(具体见官网),否则可能出现:org.mockito.internal.handler.MockHandlerFactory.createMockHandler错误

缺点

junit本身不支持并行测试;工程中主要就Junit的如下4种场景的并行测试的实现进行描述:

单测试类的所有方法并行测试:

单测试类的单个方法并行测试:

多测试类的所有方法并行测试:

所有测试类一次执行

框架描述

主要是针对Junit框架、PowerMock框架以及部分其他三方工具进行整合创建的工具工程;囊括 通用基本数据类型check、shell命令执行、性能监控、测试结果统计、报告生成、邮件通知 等功能

工程目录结构如下:

备注:由于TestNG框架原生就支持并行、负载测试,所以在并发场景直接使用TestNG+Jmeter的框架

Junit5对应的pom依赖

针对支持并行测试的场景、监听终端日志捕获异常场景,需要添加如下pom:

其中net.sourceforge.groboutils下的groboutils-core-5.jar需要手动添加到Global Libraries目录下

Junit5相关注解说明,官网实例,参见 链接

如何用powermockrunner覆盖循环

通过子类覆盖父类进行覆盖循环。
PowerMock是一个扩展了其它如EasyMock等mock框架的、功能更加强大的框架。PowerMock使用一个自定义类加载器和字节码操作来模拟静态方法,构造函数,final类和方法,私有方法,去除静态初始化器等等。通过使用自定义的类加载器,简化采用的IDE或持续集成服务器不需要做任何改变。熟悉PowerMock支持的mock框架的开发人员会发现PowerMock很容易使用,因为对于静态方法和构造器来说,整个的期望API是一样的。PowerMock旨在用少量的方法和注解扩展现有的API来实现额外的功能。
如今比较流行的Mock工具如jMock、EasyMock、Mockito等都有一个共同的缺点:不能mock静态、final、私有方法等。而PowerMock能够完美的弥补以上三个工具的不足。 关于mock框架工具和mock 框架的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 mock框架工具的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于mock 框架、mock框架工具的信息别忘了在本站进行查找喔。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java关键字final、static使用总结
下一篇:java基础之反射和泛型以及注解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~