JTester架构与发展

Download Report

Transcript JTester架构与发展

接口测试交流
JTester 架构和展望
吴大瑞
2010-07-08
浮光掠影
总体框架
模块功能
Spring集成
断言功能
DbFit功能
接口测试
其他功能
展望
总体框架
 支持2种引擎
• TestNG
• JUnit
总体框架
 “四轮” 驱动
• Unitils
提供一种可插入的方式管理框架的功能集
• Fitness
基于表格驱动的数据管理和接口调用,方便准备和验
证数据库,同时是大批量接口测试的有力保障。
• Hamcrest
有着丰富的断言器,错误信息明确。再把它改造成
Fluent Interface,就是一把无敌的利剑。
• jMockit
一出生便有高贵的血统,突破传统Mock的种种限制,
是程序员测试的左膀右臂。
总体框架
总体框架
 jTester的功能一览
Test Case
jMockit
Fluent Assert
Module
Listener
接口测试
Fixture
Spring
Integrate
DbMainter
Inject
DbFit
Tracer
各个模块功能-Spring
 @SpringApplicationContext
 @AutoBeanInject
 @SpringBeanByName/@SpringBean
 @SpringBeanFor
各个模块功能-fluent assert
 Assert Syntax:
want.object(value).assert(expected)
各个模块功能-fluent assert
 已定义的对象
 String
 Number
 Object
 Array
 Colletion
 ……
 丰富简便的断言语法
各个模块功能-fluent assert
 对象的比较
• reflectionEq
• propertyEq
• same , isEqualTo, reflectionEq的区别
 Map类型的比较
 集合类型的比较
 数组的比较
各个模块功能-DbFit
 @DbFit(when={.},then={.})
•
•
•
•
When 测试前执行
Then 测试后执行
When和Then都可以包含多个文件
文件查找路径:先找classpath,然后再找相对于测试类
的classpath,也可以是File路径
各个模块功能-DbFit
 准备数据
• |clean table|…|
• |insert| table|
• 运行结果dbfit-output
各个模块功能-DbFit
 验证数据
• |query| select …|
• 参数化查询
各个模块功能-DbFit
 错误信息
 异常信息
各个模块功能-DbFit
 Connect
 Execute
 Connet From File
 Clean table
 Store Query
 Insert
 Set Parameter
 Query
 Commit
 Ordered query
 Rollback
 Delete
 Update
各个模块功能-DbFit
 使用插件查询数据
• 请先选择要操作的数据库
• 全表查询
• Sql查询
 拷贝数据
各个模块功能-DbFit
 变量使用
 内置变量 date datetime
各个模块功能-接口测试fixture
示
例
各个模块功能-接口测试fixture
 DtoPropertyFixture结构
具体测试方法
你实际测试接口的Fixture类
参数对应的字段
POJO形式的参数
各个模块功能-接口测试fixture
 直接支持的格式
• string
• 数值
• 布尔
 自定义格式
•
•
•
•
方法parse${field}
参数:wiki中对应字符串
任意解析
框架提供的解析类型
各个模块功能-录制变量
各个模块功能-Tracer
画序列图
记录接口
参数
返回值
记录SQL
语句
展望
Do the right thing
Do the thing right
Write Test case like
write code
Write Test case like
write story
可执行的
测试文档
Resources
 http://www.testng.org/
 http://www.unitils.org/
 http://www.jmock.org/
 http://gojko.net
 http://www.fitnesse.org
 http://www.fitnesse.info
 http://moreunit.sourceforge.net/
 http://update.eclemma.org/
Q&A
Q&A