YMock 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
YMock 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
YMock 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 MIT
开发语言 Java
操作系统 跨平台
软件类型 开源软件
所属分类 开发工具测试工具
开源组织
地区 国产
投 递 者 重度恐高症
适用人群 未知
收录时间 2016-09-17

软件简介

ymock是一种针对单元测试与集成测试的辅助框架,其目的是解决测试过程中遇到的一些技术问题,方便测试进行,提高测试效率。它解决的问题主要为以下3个方面:1,隔离对第三方dubbo服务的依赖问题; 2,数据库数据准备问题; 3,按照一定规则创建测试数据的辅助功能。(仅于jdk1.8 +)

模块说明

ymock-core对应代码实现,其MockJSTest对应着MockJS的使用
模仿;ymock-demo主要是使用替换,其dubbo目录对应着mock dubbo的使用。测试资源是由测试时数据库配置的参考样例。

使用说明

依赖约会

<dependency>
    <groupId>com.yirendai.infra</groupId>
    <artifactId>ymock-core</artifactId>
    <version>1.0.0</version>
</dependency

模拟Dubbo接口

  • 添加配置文件处理bean,当改配置为true时,spring容器在启动时不会去检查dubbo登录中心是否连接正确,所有在采用mock时我们完全不依赖于第三方,包括zookeeper,dubbo提供程序。

<bean class="com.yirendai.infra.ymock.dubbo.DubboMockPostProcessor" >
       <!-- 是否开启Mock功能,true:开启,false:关闭 -->
       <constructor-arg index="0" value="true"/>
</bean>
  • 对目标dubbo接口设定期望

采用Jmockit语法

MockUp<PointFacade> pointService = new MockUp<PointFacade>() {
    @Mock
    public CommonResult<PointResponse> execSubPoint(PointRequest PointRequest)
    {
        CommonResult<PointResponse> pointResponseCommonResult = new CommonResult<>();
        pointResponseCommonResult.setCode("2009");
        return pointResponseCommonResult;
    }
};

DubboMock.set(pointService);

采用Mockito语法

PointRequest pointRequest = ...;
CommonResult<PointResponse> pointResponseCommonResult = new CommonResult<>();
pointResponseCommonResult.setCode("2008");

PointFacade pointFacade = mock(PointFacade.class);
when(pointFacade.execSubPoint(pointRequest)).thenReturn(pointResponseCommonResult);

DubboMock.set(pointFacade);

数据库数据准备

  • 原则:
    1.使用真实的数据库,可以保证测试的有效性;
    2.测试时构建最小的测试数据集,方便数据管理,同时兼顾性能;
  • 方案:
    数据库分为开发数据库和测试数据库,开发数据库仅用于开发,测试用于单元测试和集成测试
  • 实现原理:
    1. 将Dev数据库的表或数据(仅同步必须的)同步到测试数据库;
    2. 利用项目中现有的API对数据进行补充设置。
  • 使用说明
  1. 配置
	<bean class="com.yirendai.infra.ymock.util.MysqlManager">
		<!-- 源地址 -->
		<constructor-arg index="0" ref="dataSource1" />
		<!-- 目标地址 -->
		<constructor-arg index="1" ref="dataSourceTest" />		
	</bean>
  1. 根据需要同步指定的表和数据
    mysqlManager.syncTableSchema("table1"); // 设置需要同步表结构的表
    mysqlManager.syncTableData("table2");   // 设置需要同步表数据的表

    mysqlManager.syncCase();     //同步指定表的结构和数据.
    //mysqlManager.syncSuit();   //同步所有的表结构,同步指定表的数据.

测试数据准备(仅限JDK1.8 +)

  • 支持mockjs语法
  • 使用体现
    System.err.println(MockJS.mock("{\"string|1-10\":\"*\"}"));

    String exp = " {\"string|2-9\":\"*\"}";
    System.err.println(MockJS.mock(exp));

某次运行结果如下:

{"string":"****"}
{"string":"*****"}
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击引领话题📣 发布并加入讨论🔥
暂无内容
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
FasterXML Jackson-databind服务器端请求伪造漏洞
SSRF
FasterXML Jackson是美国FasterXML公司的一款用于Java的数据处理工具。Jackson-databind是其中的一个具有数据绑定功能的组件。 FasterXML Jackson-databind 2.9.7之前的2.x版本中存在服务器端请求伪造漏洞,远程攻击者可利用该漏洞执行服务器端请求伪造攻击。
CVE-2018-14721 MPS-2019-0021
2022-08-08 21:16
FasterXML Jackson-databind代码问题漏洞
反序列化
FasterXML Jackson是美国FasterXML公司的一款适用于Java的数据处理工具。jackson-databind是其中的一个具有数据绑定功能的组件。 FasterXML jackson-databind 2.7.9.4之前版本、2.8.11.2之前版本和2.9.6之前版本中存在安全漏洞。攻击者可利用该漏洞执行执行代码。
CVE-2018-12022 MPS-2019-2619
2022-08-08 21:16
FasterXML jackson-databind 代码问题漏洞
反序列化
2.9.10.8 之前的 FasterXML jackson-databind 2.x 错误处理了与 org.apache.commons.dbcp2.datasources.PerUserPoolDataSource 相关的序列化小工具和类型之间的交互。
CVE-2020-35490 MPS-2020-17696
2022-08-08 21:16
FasterXML jackson-databind反序列化漏洞(ResourceRef gadget绕过)
反序列化
FasterXML Jackson是美国FasterXML公司的一款适用于Java的数据处理工具。jackson-databind是其中的一个具有数据绑定功能的组件。 FasterXML jackson-databind 2.9.10.4之前的2.x版本中存在安全漏洞,该漏洞源于com.caucho.config.types.ResourceRef(caucho-quercus)进行了不安全的反序列化。远程攻击者可借助特制的输入利用该漏洞在系统上执行任意代码。
CVE-2020-10673 MPS-2020-4132
2022-08-08 21:16
Vmware Spring Framework 注入漏洞
输入验证不恰当
Vmware Spring Framework是美国威睿(Vmware)公司的一套开源的Java、JavaEE应用程序框架。该框架可帮助开发人员构建高质量的应用。 Spring Framework 存在注入漏洞,该漏洞源于通过日志注入绕过 Spring Framework 的访问限制,以更改数据。
CVE-2021-22096 MPS-2021-18890
2022-08-08 21:16
io.netty:netty-codec-http 存在拒绝服务漏洞
拒绝服务
io.netty:netty-codec-http 是一个网络应用框架,用于快速开发可维护的高性能协议服务器和客户端。此软件包的受影响版本容易受到拒绝服务 (DoS) 的攻击。在请求内容大于 16kb(默认值,可设置)的时候,netty 会使用磁盘存储请求内容,同时在默认情况下,会调用 file 的 deleteOnExit 方法,导致文件路径不断的被保存到不能被 jvm在运行时回收的 DeleteOnExitHook ,最终造成内存泄露的危害,
MPS-2022-12064
2022-08-08 21:16
FasterXML Jackson-databind 代码问题漏洞
反序列化
FasterXML jackson-databind是一个基于JAVA可以将XML和JSON等数据格式与JAVA对象进行转换的库。Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象。 FasterXML Jackson-databind 2.8.10及之前版本和2.9.x版本至2.9.3版本中存在代码问题漏洞。远程攻击者可通过向ObjectMapper的readValue方法发送恶意制作的JSON输入并绕过黑名单利用该漏洞执行代码。
CVE-2017-17485 MPS-2018-0362
2022-08-08 21:16
FasterXML jackson-databind 内容泄漏漏洞(受mybatis影响)
反序列化
FasterXML Jackson是美国FasterXML公司的一款适用于Java的数据处理工具。jackson-databind是其中的一个具有数据绑定功能的组件。 FasterXML jackson-databind 2.7.9.4之前版本、2.8.11.2之前版本和2.9.6之前版本中存在安全漏洞。攻击者可利用该漏洞绕过对数据的访问限制,获取敏感信息。
CVE-2018-11307 MPS-2019-7711
2022-08-08 21:16
FasterXML jackson-databind 信息泄露漏洞
反序列化
FasterXML Jackson是美国FasterXML公司的一款适用于Java的数据处理工具。jackson-databind是其中的一个具有数据绑定功能的组件。 FasterXML jackson-databind 2.9.9.2之前的2.x版本中存在安全漏洞。目前尚无此漏洞的相关信息,请随时关注CNNVD或厂商公告。
CVE-2019-14439 MPS-2019-8770
2022-08-08 21:16
Fastjson <=1.2.68 远程代码执行漏洞
使用外部可控制的输入来选择类或代码(不安全的反射)
Fastjson 是Java语言实现的快速JSON解析和生成器,在<=1.2.68的版本中攻击者可通过精心构造的JSON请求,远程执行恶意代码。 漏洞原因: Fastjson采用黑白名单的方法来防御反序列化漏洞,导致当黑客不断发掘新的反序列化Gadgets类时,发现在AutoTypeSupport关闭的情况下仍然可能可以绕过黑白名单防御机制,造成远程命令执行漏洞。 本次绕过通过继承自 Throwable 异常类的白名单类gadget实现,漏洞点为ThrowableDeserializer#deserialze。
MPS-2020-39708
2022-08-08 21:16
FasterXML jackson-databind 代码问题漏洞
反序列化
2.9.10.8 之前的 FasterXML jackson-databind 2.x 错误处理了与 org.docx4j.org.apache.xalan.lib.sql.JNDIConnectionPool 相关的序列化小工具和类型之间的交互。
CVE-2020-36183 MPS-2021-0206
2022-08-08 21:16
Fastjson <= 1.2.60 版本远程代码执行漏洞
使用外部可控制的输入来选择类或代码(不安全的反射)
Fastjson 是Java语言实现的快速JSON解析和生成器,在<=1.2.60的版本中攻击者可通过精心构造的JSON请求,在autoType显式开启的情况下,绕过黑名单机制,远程执行任意代码。 漏洞原因: 攻击者发现了两个类JNDIConfiguration和OracleManagedConnectionFactory不在黑名单中,可调用连接远程rmi主机,通过其中的恶意类执行代码。
MPS-2019-28847
2022-08-08 21:16
FasterXML jackson-databind 代码问题漏洞
反序列化
FasterXML Jackson是美国FasterXML公司的一款适用于Java的数据处理工具。jackson-databind是其中的一个具有数据绑定功能的组件。 FasterXML jackson-databind 2.0.0版本至2.9.10版本中存在代码问题漏洞。该漏洞源于网络系统或产品的代码开发过程中存在设计或实现不当的问题。攻击者可利用该漏洞执行恶意的payload。
CVE-2019-17531 MPS-2019-13103
2022-08-08 21:16
Netty 存在HTTP请求走私漏洞
HTTP请求的解释不一致性(HTTP请求私运)
Netty是Netty社区的一款非阻塞I/O客户端-服务器框架,它主要用于开发Java网络应用程序,如协议服务器和客户端等。 Netty 4.1.43.Final版本中存在HTTP请求走私。因为它不正确地处理了传输编码空白(例如[space] Transfer-Encoding:Chunked行)和后来的Content-Length标头。由于CVE-2019-16869的修复不完整而存在此问题。
CVE-2020-7238 MPS-2020-1320
2022-08-08 21:16
Github json-smart-v1 缓冲区错误漏洞
跨界内存写
netplex json-smart是开源的一个JSON Java解析器。 在 JSON Smart 版本 1.3 和 2.4 中的 JSONParserByteArray 的 indexOf 函数中发现了一个漏洞,该漏洞通过精心设计的 Web 请求导致拒绝服务 (DOS)。
CVE-2021-31684 MPS-2021-7737
2022-08-08 21:16
FasterXML jackson-databind 代码问题漏洞
反序列化
FasterXML jackson-databind是一个基于JAVA可以将XML和JSON等数据格式与JAVA对象进行转换的库。Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象。 FasterXML jackson-databind 2.9.10之前版本中存在代码问题漏洞。该漏洞源于网络系统或产品的代码开发过程中存在设计或实现不当的问题。
CVE-2019-17267 MPS-2019-12676
2022-08-08 21:16
FasterXML jackson-databind信息泄露漏洞
反序列化
FasterXML Jackson是美国FasterXML公司的一款适用于Java的数据处理工具。jackson-databind是其中的一个具有数据绑定功能的组件。 FasterXML jackson-databind存在信息泄露漏洞。攻击者可利用漏洞获取受影响组件敏感信息。
CVE-2019-12814 MPS-2019-6867
2022-08-08 21:16
FasterXML jackson-databind代码问题漏洞
反序列化
FasterXML Jackson是美国FasterXML公司的一款适用于Java的数据处理工具。jackson-databind是其中的一个具有数据绑定功能的组件。 FasterXML jackson-databind 2.9.10.4之前的2.x版本中存在代码问题漏洞。该漏洞源于网络系统或产品的代码开发过程中存在设计或实现不当的问题。目前没有详细的漏洞细节提供。
CVE-2020-10968 MPS-2020-4658
2022-08-08 21:16
FasterXML jackson-databind 代码问题漏洞
反序列化
2.9.10.8 之前的 FasterXML jackson-databind 2.x 错误处理了与 org.apache.tomcat.dbcp.dbcp2.datasources.SharedPoolDataSource 相关的序列化小工具和类型之间的交互。
CVE-2020-36185 MPS-2021-0208
2022-08-08 21:16
Apache Commons IO 路径遍历漏洞
路径遍历
在 2.7 之前的 Apache Commons IO 中,当使用不正确的输入字符串(如“//../foo”或“\\..\foo”)调用方法 FileNameUtils.normalize 时,结果将是相同的值,因此可能如果调用代码将使用结果来构造路径值,则提供对父目录中文件的访问,但不能进一步访问(因此“有限”路径遍历)。
CVE-2021-29425 MPS-2021-4531
2022-08-08 21:16
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
0 评论
10 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部