最近项目组老大告诉我fitnesse是个不错的项目沟通工具,兼自动化测试工具,所以学习之。
一、安装
1、去官网下个jar包,www.fitnesse.org,我下载的是fitnesse-standalone.jar,将该jar包放到一个空白文件夹当中,打开命令窗口,执行命令java -jar fitnesse-standalone.jar或者java -jar fitnesse-standalone.jar -p 8001,后者是指定端口的,防止默认的80端口被占用后没法打开fitnesse。
2、打开浏览器,输入:http://localhost或者http://localhost:8001即可看到初始界面。
PS:fitnesse是java写的,所以用之前,请确保java环境变量已经设置好。
二、使用
1、在初始界面里面,可以看到右上方有3个按钮,大家可以多点击点击。点击edit按钮,在该页面最下面一行加上MyNewPage,保存后返回当前页面。点击MyNewPage,可以在该页面进行操作,我选择了添加,点击add按钮,选择test page ,进入新页面的编辑页面,命名规则的wiki word,简而言之,就是两个以上单词组成的联合词,每个单词首字母大写,且每个单词不得少于两个字母,如FirstTest。在页面上随便写点东西都可以。
2、编写程序。
package fitnesse.slim.test; import java.util.List; public class ShouldIBuyMilk { private int dollars; private int pints; private boolean creditCard; public void setCaseInWallet(int dollars) { this.dollars = dollars; } public void setPintsOfMilkRemaining(int pints) { this.pints = pints; } public void setCreditCard(String valid) { if (valid == "yes") creditCard = true; else creditCard = false; } public String goToStore() { if (pints == 0 && (dollars > 2 || creditCard)) return "yes"; else return "no"; } public void execute() { } public void reset() { } public void table(List<List<String>> table) { } }编写好程序后,我们可以返回之前的fitnesse页面了,找到FirstTest页面,点击edit,在页面中添加下面一段内容:
!define TEST_SYSTEM {slim}
!path D:/fitnesse/fitnesse-standalone.jar
!path D:/workspace-sts/test/bin/fitnesse/slim/test
!|import |
|fitnesse.slim.test |
!|fitnesse.slim.test.ShouldIBuyMilk |
|cash in wallet|credit card|pints of milk remaining|go to store?|
|10 |no |1 |no|
|12 |yes |1 |no|
|100 |no |0 |yes|
解释下:
第一行:使用FitNesse的slim模块,也就是使用网页的形式描述测试用例
第二行:jar包所在的路径(这里要说明下,我看到网上很多例子是没有这一行的,但是我使用的时候发现,没有这一行会报错:java.lang.NoClassDefFoundError: fitnesse/slim/SlimService,可能是路径的问题吧,我是把fitnesse和我java程序所在的地方分开放的)
第三行:测试类**.class所在的路径
第六行:测试类的名称,fitnesse.slim.test package下的ShouldIBuyMilk这个类
表头:cash in wallet, credit card,pints of milk remaining对应类中的setNumerator(), setCreditCard(),setPintsOfMilkRemaining()这三个方法,go to store对应String goToStore()()这个方法,注意go to store后面有个问号,说明这个方法是有返回值的。
点击save按钮,返回该页面,点击test,可以看到测试页面。
到这里你也许猜出了这个测试工具的工作原理了吧,Slim根据网页中的classpath去调用测试类,将测试用例的输入给测试类中对应的set方法,然后slim将程序中对应方法的实际输出跟测试用例的期望输出相比较,如果相同,则测试用例通过。那如何将HTML中表单的值正确解析并输入到程序中呢,注意到程序中的import跟extend,这就告诉测试类该如何处理获得的表单数据。