Fitnesse登录测试
Fitnesse login test
我正在处理交付管道。我想在其中集成多个测试自动化框架。其中之一是 Fitnesse。在网络上,我看到很多使用 wikiserver 测试 Java class 的示例。但是我没有看到是否可以测试一个简单的 (jsp) 登录表单。我还想从 Juni 测试中开始这个测试,而不安装 wikiserver。只需添加 Fitnesse maven 依赖项。
有没有人可以举例说明如何做到这一点?
谢谢!
您的问题似乎是双重的:
- 如何为登录网页编写 FitNesse 测试,以及:
- 如何 运行 在交付管道中进行此测试(我希望它充当
jUnit 测试)
从你的问题来看,我不太清楚你是否已经设法编写了你正在寻找的测试。就像在对您的问题的评论中提到的那样:FitNesse 本身不提供任何直接测试网络表单的方法。您要么需要编写自己的代码以将 wiki 连接到要测试的网页(固定装置),要么使用包含此类固定装置的库。
对于 运行 交付管道内的 FitNesse 测试,如 jUnit 测试,您可以编写带有 RunWith
注释的 jUnit 测试,然后指定 FitNesse 的 FitNesseRunner
。类似于下面来自 FitNesse's own tests 的测试:
package fitnesse.junit;
import org.junit.runner.RunWith;
@RunWith(FitNesseRunner.class)
@FitNesseRunner.Suite("FitNesse.SuiteAcceptanceTests.SuiteSlimTests.TestScriptTable")
@FitNesseRunner.FitnesseDir(".")
@FitNesseRunner.OutputDir("./build/fitnesse-results")
public class FitNesseRunnerTest {
}
我创建了一个 (open source) project,其中包含使用网络登录表单(通过浏览器、Selenium 或直接向服务器发送 http POST)和运行 测试您在 wiki 中从构建服务器定义的测试(提供一个 jUnit 测试,您可以通过添加系统 属性 将其配置为 运行 特定 test/suite)。因此,如果您还没有设置,那可能是一个很好的起点。
使用该项目进行登录表单测试(例如称为 MyTests.LoginTest)可能类似于:
|script|browser test|
|open|https://example.com/myprofile|
|enter|johndoe|as|Username|
|enter|secret|as|Password|
|click|Login|
|check|value of|Firstname|John|
|check|value of|Lastname|Doe|
以及对 运行 测试的调用(使用 Maven),它将嵌入到您的管道中:
mvn clean test-compile failsafe:integration-test -DfitnesseSuiteToRun=MyTests.LoginTest -DseleniumGridUrl=http://${SAUCE_USERNAME}:${SAUCE_ACCESS_KEY}@ondemand.saucelabs.com:80/wd/hub -DseleniumCapabilities="browserName:chrome,platform:Windows 7,screenResolution:1680x1050"
我正在处理交付管道。我想在其中集成多个测试自动化框架。其中之一是 Fitnesse。在网络上,我看到很多使用 wikiserver 测试 Java class 的示例。但是我没有看到是否可以测试一个简单的 (jsp) 登录表单。我还想从 Juni 测试中开始这个测试,而不安装 wikiserver。只需添加 Fitnesse maven 依赖项。
有没有人可以举例说明如何做到这一点?
谢谢!
您的问题似乎是双重的:
- 如何为登录网页编写 FitNesse 测试,以及:
- 如何 运行 在交付管道中进行此测试(我希望它充当 jUnit 测试)
从你的问题来看,我不太清楚你是否已经设法编写了你正在寻找的测试。就像在对您的问题的评论中提到的那样:FitNesse 本身不提供任何直接测试网络表单的方法。您要么需要编写自己的代码以将 wiki 连接到要测试的网页(固定装置),要么使用包含此类固定装置的库。
对于 运行 交付管道内的 FitNesse 测试,如 jUnit 测试,您可以编写带有 RunWith
注释的 jUnit 测试,然后指定 FitNesse 的 FitNesseRunner
。类似于下面来自 FitNesse's own tests 的测试:
package fitnesse.junit;
import org.junit.runner.RunWith;
@RunWith(FitNesseRunner.class)
@FitNesseRunner.Suite("FitNesse.SuiteAcceptanceTests.SuiteSlimTests.TestScriptTable")
@FitNesseRunner.FitnesseDir(".")
@FitNesseRunner.OutputDir("./build/fitnesse-results")
public class FitNesseRunnerTest {
}
我创建了一个 (open source) project,其中包含使用网络登录表单(通过浏览器、Selenium 或直接向服务器发送 http POST)和运行 测试您在 wiki 中从构建服务器定义的测试(提供一个 jUnit 测试,您可以通过添加系统 属性 将其配置为 运行 特定 test/suite)。因此,如果您还没有设置,那可能是一个很好的起点。
使用该项目进行登录表单测试(例如称为 MyTests.LoginTest)可能类似于:
|script|browser test|
|open|https://example.com/myprofile|
|enter|johndoe|as|Username|
|enter|secret|as|Password|
|click|Login|
|check|value of|Firstname|John|
|check|value of|Lastname|Doe|
以及对 运行 测试的调用(使用 Maven),它将嵌入到您的管道中:
mvn clean test-compile failsafe:integration-test -DfitnesseSuiteToRun=MyTests.LoginTest -DseleniumGridUrl=http://${SAUCE_USERNAME}:${SAUCE_ACCESS_KEY}@ondemand.saucelabs.com:80/wd/hub -DseleniumCapabilities="browserName:chrome,platform:Windows 7,screenResolution:1680x1050"