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