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"