接口自动化测试之Mock

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了接口自动化测试之Mock相关的知识,希望对你有一定的参考价值。

参考技术A




Mock介绍









1.找到要替换的对象:我们需要测试的是visit_ustack这个函数,那么我们需要替换掉send_request这个函数。


2.实例化Mock类得到一个mock对象,并且设置这个mock对象的行为。在成功测试中,我们设置mock对象的返回值为字符串“200”,在失败测试中,我们设置mock对象的返回值为字符串"404"。


3.使用这个mock对象替换掉我们想替换的对象。我们替换掉了client.send_request


4.写测试代码。我们调用client.visit_ustack(),并且期望它的返回值和我们预设的一样。


上面这个就是使用mock对象的基本步骤了。在上面的例子中我们替换了自己写的模块的对象,其实也可以替换标准库和第三方模块的对象,方法是一样的:先import进来,然后替换掉指定的对象就可以了。



Mockrunner用在J2EE环境中进行应用程序的模拟测试。它不仅支持Struts actions,servlets,过滤器和标签类,还包括一个JDBC和一个JMS测试框架,可以用于测试基于EJB的应用程序。


Mockrunner扩展了JUnit并模拟了必要的行为,而无需调用实际的基础结构。它不需要正在运行的应用程序服务器或数据库。此外,它不会调用web容器或Struts ActionServlet。它非常快速,使用户可以在测试的所有步骤中操纵所有涉及的类和模拟对象。它可以用于为基于J2EE的应用程序编写非常复杂的单元测试,而不会产生任何开销。Mockrunner不支持任何类型的容器内测试。


Mockrunner不会读取任何配置文件,例如web.xml或struts-config.xml。您可以使用Mockrunner API指定所有参数。因此,可以将servlet,过滤器,标签和Struts动作作为可重用组件进行测试,而不管您在一个或另一个应用程序中使用的设置如何。无法测试配置文件中的定义。如果要这样做,可以将StrutsTestCase用于基于Struts的应用程序或Cactus。


Mockrunner支持Java版本从1.3到1.6以及J2EE 1.3,J2EE 1.4和JavaEE5。尚不支持EJB 3.0。Mockrunner支持Struts版本1.1、1.2和1.3。


下载地址:Mockrunner download | SourceForge.net





最后:【可能给你带来帮助的教程】软件测试最新自学教程

Yapi平台之Mock服务

参考技术A YApi的 Mock 功能可以根据用户的输入接口信息如协议、URL、接口名、请求头、请求参数、返回数据( 返回数据 )生成 Mock 接口,这些接口会自动生成模拟数据,创建者可以自由构造需要的数据。mock模拟数据基于mock.js。

Mock.js 是一款模拟数据生成器,旨在帮助前端攻城师独立于后端进行开发,帮助编写单元测试。提供了以下模拟功能:

l 根据数据模板生成模拟数据

l 模拟 Ajax 请求,生成并返回模拟数据

l 基于 HTML 模板生成模拟数据

进入项目,选择并点击某接口

很多时候需要根据不同的请求参数返回不同的响应数据,可以使用高级Mock中的期望或自定义脚本来实现。
以新网项目中的联合登陆接口为例。后台逻辑为如果用户已开户则返回数据中"openAccount": true,如果未开户"openAccount": false。
接口的输入参数有:mobile,idCard,userRealName。可以设置输入userRealName=’哈哈’时为已开户条件,返回"openAccount": true。为其他值时均为未开户的情况,返回"openAccount": false。下面分别用期望和脚本两种方式实现:

还是以新网银行项目为例,结合app中的H5页面来演示一下。

参考:
yapi官网教程: <u>https://hellosean1025.github.io/yapi/documents/index.html</u>
Mock.js的详细内容参考: <u>http://mockjs.com/0.1/#natural</u>

以上是关于接口自动化测试之Mock的主要内容,如果未能解决你的问题,请参考以下文章

最全面Java接口自动化测试实战 HttpClient+TestNG+Mock+MyBatis

接口自动化学习--mock

接口自动化测试-Mock Get和Post请求

接口自动化与RPC服务mock平台相结合的应用实践

前端驱动的接口数据检查文档生成mock 以及接口自动化测试全方位实战效果。

使用 unittest 中 mock 来模拟接口的返回