有一位博友问了一些关于fitnesse的问题,我以为都是不错的问题。发在本身的blog里,感兴趣的同行,能够一块儿讨论。java
1. 如何不让fitnesse自动把驼峰命名形式的字符串识别为一个新页面(有没有转义符之类的)web
试试单引号。由于fitnesse是基于wiki page的,你能够google一下wiki的语法。浏览器
2. 如何把某个路径或某个jar包定义为“全局”应用。这样就不用在每一个测试页面重复定义一遍了。框架
在fitnesse里面,有testsuite的概念,好比咱们这个工具的frontpage是这样写的:红色的是code.ide
# BasicTestSetup就是一个test suite.工具
'''Testsuites'''测试
|>BasicTestSetup|''Basic Test Setup''|ui
# 定义class pathgoogle
----spa
'''Classpath'''
!path fitnesse*.jar
!path ./lib/*.jar
# 定义全局变量
----
'''Definitions'''
!define TEST_SYSTEM {slim}
!define BROWSER_TO_TEST {Internet Explorer}
!define START_URL {localhost:8080}
另外,每一个testsuite里面有setup page和teardown page.你能够把一些初始化这个test suite的东西放到setup page里面去。对于clean up的东西,好比关闭浏览器这个的操做放到tear down page。Set up page和teardown page是会被这个suite里面的每一个test case自动调用的。详细内容参见fitnesse的user guide.
3. 如何在fitnesse测试里使用测试数据文件(好比做为动态参数之类的)?放在哪里,如何加载,这个有经验吗?
这个涉及到框架问题了。个人经验是将测试数据放到一个page下,在test case里面include,作到测试数据和测试脚本分离。好比 test data的页面是这样的:
# InsertData这个页面里面有不少页面,每一个页面里都有测试数据,好比truck one 里面定义了一些变量。
http://localhost:82/FrontPage.BasicTestSetup.InsertData
|>TruckOne|''Truck One''|
|>TruckTwo|''Truck Two''|
http://localhost:82/FrontPage.BasicTestSetup.InsertData.TruckOne
!define vehicleDisplayName {rt_70_t1h_4m}
!define vehicleVin {55200004611114770}
我再介绍一下如何使用这个页面:include测试数据的页面
http://localhost:82/FrontPage.BasicTestSetup.SetupOtherData.SetupVehicles
!include -c .FrontPage.BasicTestSetup.InsertData.TruckOne
Table里面这样调用变量
!|script|pages.CreateVehiclePage|
|type display name|${vehicleDisplayName}|
|type vin|${vehicleVin}|
这样的设计能够很好的分离测试数据和测试代码。
4.你的那个示例代码我运行不成功啊,我已经引入了selenium-java-2.31.0.jar ,且import 以下类:
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebDriverBackedSelenium;
import org.openqa.selenium.firefox.internal.ProfilesIni;
import org.openqa.selenium.firefox.*;
import org.openqa.selenium.ie.InternetExplorerDriver;
import com.thoughtworks.selenium.*;
编译经过,但执行异常。是否是还须要哪些文件?
呵呵,我那个示例代码颇有可能不成功,只是一个示例。由于咱们在selenium的基础上,定义了一些本身的类。其中最主要的就是Browser这个类了。这部分是由其余开发作的,我也只是使用而已。代码是不能公布的,由于公司有security policy。我只能提供思路,咱们把webdriver,和selenium这两个类都包含到Browser这个类中,做为成员。而后定义了一些方法,好比打开浏览器等等。