testgen

Spring可视化及自动化单元测试生成插件
授权协议 GPL
开发语言 Java
所属分类 开发工具、 单元测试工具
软件类型 开源软件
地区 国产
投 递 者 焦博实
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

安装:把附件中的两个jar放到你的eclipse的plugins文件夹下重启eclipse就好了啦!

一、Spring的可视化操作

1、写好spring的bean后怎么运行呢?我猜你会有这两种办法:

  • 写个main函数,根据配置文件创建ClassPathXmlApplicationContext然后再获取bean,重重无聊操作后运行得出结果。

  • 写个单元测试,在初始化的时候配置好Spring的初始化环境,在写个单元测试函数来启动spring的bean?Oh my god!更复杂了!

2、如果你还在用以上两种办法来运行测试你的spring 的bean函数,那么你就太out了,本插件给你提供了全新的可视化Spring运行方式。

测试类:

public class MyTest {

public int testAdd(int a,int b){
    return a+b;
}

public int testDivide(int a,int b){
    return a/b;
}
}

测试配置文件applicationContext.xml:

<beans default-autowire="byName">
  <bean id="testA" class="com.test.MyTest"></bean>  
</beans>

要运行MyTest怎么操作呢?

(1)选中你要运行的函数,如testAdd,右键,在右键菜单中会有run in spring菜单,点下就好了。

图片1

(2)当然,你还要指定spring配置文件,点击”选择配置文件按钮“,选择你的spring配置文件,并点击 “启动Spring”,OK,大功告成,开始测试吧,我测:

图片3

我再测:

图片4

(3)debug模式自然是必不可少了!

8f6ca246934274acf3dd960a469127cc

(4)某些情况下存在大量的Spring配置文件需要汇总,或者无法提取配置文件的Web工程,你可以直接使用web.xml启动哦。

9501f0bf4be2046430b38de48f6cc78d

(5)对于阿里系用户,HSF的使用是非常普遍的,就像tomcat的HSF版,jetty的HSF版,本插件也继承了对HSF的支持,如果你的工程中使用了HSF,那么你需要选中HSF的选项就可以了!

292cb62580463237171869543f5e832f

二、生成单元测试

Spring可视化操作的时候我们已经知道了如何运行函数,其实你离生成单元测试只差一步,你要做的就是在计算结果后点击添加至单元测试按钮,那么系统会帮你记录下当前的入参出参信息到单元测试收集树中。

dffce1caefe4f3d6f28ad28420c70f8b

一个不够,要继续追加?那你就继续选择函数计算好了。

1f9b93bf4fac24ce16d7245d89468717

**觉得差不多了,开始生成单元测试吧:**
点击生成测试按钮,在弹出的页面上输入你要生成的测试类的名字:

17dff0c18cce474b51a1d9aa07221483

点击finish,你会看到鲜活的单元测试工程已经生成了,并且已经自动导入到你的eclipse中了

3d60c303101cab26330105014a0e49d5

三、生成单元测试-高级篇

1、复杂对象的手工输入

对函数的可视化操作并不能满足所有场景,需要对某些复杂对象或者接口类参数进行手工代码输入,右键点击参数:

22744bac18211f7570843f79e18440c9

输入初始化代码:

caee8df1a0176bbb5a71b13a76f2e83e

点击确定后,代码就展示到了参数树上,当然你也可以继续通过可视化的方式继续对参数进行编辑。双击即可:

293a527f6010804edbaba54cd766baee

2、数据的备份与还原

数据在一个项目中往往是必不可少的,而且也非常容易影响单元测试的结果,有时候可能因为某一条数据的改变而引起单元测试执行失败,这显然是不对的,因为单元测试是对逻辑的验证,应该独立于数据而存在,所以,我们期待单元测试在运行的时候应该尽可能的屏蔽因为数据变化而引起单元测试执行失败的情况。
使用插件的数据恢复功能的时候你需要尽可能的概括运行当前测试所涉及到的表的SQL,多个SQL使用;隔开,如:

cb6396cbc0f5a771580505e17d2daeab
那么,在生成单元测试的时候,插件会根据你输入的SQL查询对应的数据并以excel形式备份到单元测试下:

21e908fde2ded075b215324a4ac8c2c0

这样即使你在后面的过程中删掉所有数据,也不会影响你的测试效果,插件的执行流程:
(1)运行测试之前,备份数据库中现有相关数据。
(2)删除现有相关数据。
(3)恢复生成单元测试时候的备份数据。
(4)运行单元测试。
(5)删除插入的备份数据。
(6)将数据库中现有数据还原。
插件通过上面的机制既保证了单元测试的运行永远运行在正确的数据上,也不会影响现有数据本身。

四、页面的拦截抓取测试--待续


附件及源码地址:http://git.oschina.net/testgen/testgen/attach_files

如果有什么建议或意见,欢迎发送到haojia_007@163.com交流!

  • PostgreSQL test generator 在进行数据库开发、测试时,新建表之后,时常想自己插入数据,但十分麻烦。 pg_testgen插件可以产生大量随机数据,方便进行数据库开发测试。 插件地址:pg_testgen 安装方法: cd contrib/pg_testgen //进入插件目录 make make install 然后进入数据库、启用插件即可: CREATE EXTENSI

  • 网址在: http://sourceforge.net/projects/testgennet

 相关资料
  • 问题内容: 有什么工具可以自动生成 Java 代码的单元测试? 更新: 主要用途是为将要重构的遗留代码快速生成单元测试。自动生成后,无需自动使测试与代码保持同步。 在这里提出了几乎相同的问题,但是答案是.NET而不是Java(Pex是公认的答案): 问题答案: CodePro Analytix有一个JUnit测试生成模块,听起来像它可以完成您想要的。请参阅《用户指南》。 [CoView]是价格合理

  • 主要内容:可视化检测系统可视化测试用于通过定义数据来检查软件故障发生的情况,开发人员可以快速识别故障原因,并清楚地表达信息,以便任何其他开发人员可以利用这些信息。 可视化测试旨在显示实际问题,而不仅仅是描述它,显着增加理解和清晰度,以便快速解决问题。 可视化意味着我们可以看到的。因此,可视化测试需要整个过程的视频录制。它捕获视频格式系统测试时发生的所有事情。测试仪将图片网络摄像头中的图片和来自麦克风的音频评论作为输入值。

  • 英文原文:http://emberjs.com/guides/testing/test-runners/ 当运行测试时,可以在很多种不同的方案里选取最适合工作流的方案。找到一种摩擦最低的运行测试的方案非常重要,因为测试是一项经常要做的事情。 浏览器 运行测试的最简单的方法是直接在浏览器中打开页面。下面将展示如何加入一个qunit的测试harness给应用,并可以针对其运行测试: 首先,从这里获取一

  • 自动化测试 如果你想构建可靠的高质量的软件,自动化测试将是你工具箱里面非常关键的一个部分,它帮助你减少手工测试的代价,提高你的开发小组重构已有代码的能力。 自动化测试的类型  并非所有的自动化测试都是相似的,他们通常在作用域、实现方式和执行时间上有所差异,我把他们分成三种类型的测试:单元测试、集成测试和功能测试。 单元测试用于测试你代码的最小单元,在基于java的项目中这个单元就是一个方法(met

  • 传统的接口自动化测试成本高,大量的项目没有使用自动化测试保证接口的质量,仅仅依靠手动测试,是非常不可靠和容易出错的。 YApi 为了解决这个问题,开发了可视化接口自动化测试功能,只需要配置每个接口的入参和对 RESPONSE 断言,即可实现对接口的自动化测试,大大提升了接口测试的效率。 第一步,测试集合 使用 YApi 自动化测试,第一步需要做得是创建测试集合和导入接口,点击添加集合创建,创建完成

  • 1 测试内容 1.1 视觉人员测试 1.2 产品经理测试 1.3 测试人员测试 2 测试工具 2.1 UI 测试工具 2.1.1 TestComplete 2.1.2 RobotFramework 2.1.3 Katalon Studio 参考

  • 在 Hyperf 里测试默认通过 phpunit 来实现,但由于 Hyperf 是一个协程框架,所以默认的 phpunit 并不能很好的工作,因此我们提供了一个 co-phpunit 脚本来进行适配,您可直接调用脚本或者使用对应的 composer 命令来运行。自动化测试没有特定的组件,但是在 Hyperf 提供的骨架包里都会有对应实现。 composer require hyperf/testi

  • 问题内容: 我有某种测试数据,并且想要为每个项目创建一个单元测试。我的第一个想法是这样做: 这样做的缺点是它可以在一次测试中处理所有数据。我想即时为每个项目生成一个测试。有什么建议么? 问题答案: 我用这样的东西: 该软件包可用于自动执行此过程: 将会生成测试: