我使用Selenium IDE创建了一个记录测试,其中一个命令是verifyTextPresent。 IDE表示如果文本发生更改(这是预期的),则会出现错误。
我将记录的测试放入Eclipse并运行它,结果说它通过了。
现在我已经输入了不同的值,并且从未更改过我的代码中的值,但是eclipse说它运行正常且没有错误。但是当我在IDE中运行它时,它表示存在错误,并突出显示错误的位置。
为verifyTextPresent输入不同的值时,为什么它不会在Eclipse上失败?
这是我使用的代码;
public class MarvinDataTest extends SeleneseTestBase
{
private Selenium selenium;
private String success = "success";
@Before
public void setUp() throws Exception
{
selenium = new DefaultSelenium("localhost", 4444, "*chrome", "http://localhost:8000/");
selenium.start();
}
@Test
public void testMarvinDataTest() throws Exception
{
selenium.open("/eem/api/v1/metrics/displacement/286");
assertEquals("", selenium.getTitle());
verifyTrue(selenium.isTextPresent("success"));
selenium.open("/eem/api/v1/metrics/displacement/287");
assertEquals("", selenium.getTitle());
verifyTrue(selenium.isTextPresent("success"));
selenium.open("/eem/api/v1/metrics/displacement/288");
assertEquals("", selenium.getTitle());
verifyTrue(selenium.isTextPresent("success"));
***verifyTrue(selenium.isTextPresent("\"displacement\": 20,"));***
selenium.open("/eem/api/v1/metrics/humidity/286");
assertEquals("", selenium.getTitle());
verifyTrue(selenium.isTextPresent("success"));
selenium.open("/eem/api/v1/metrics/humidity/287");
assertEquals("", selenium.getTitle());
verifyTrue(selenium.isTextPresent("success"));
selenium.open("/eem/api/v1/metrics/humidity/288");
assertEquals("", selenium.getTitle());
verifyTrue(selenium.isTextPresent("success"));
selenium.open("/eem/api/v1/metrics/load/286");
assertEquals("", selenium.getTitle());
verifyTrue(selenium.isTextPresent("success"));
selenium.open("/eem/api/v1/metrics/load/287");
assertEquals("", selenium.getTitle());
verifyTrue(selenium.isTextPresent("success"));
selenium.open("/eem/api/v1/metrics/load/288");
assertEquals("", selenium.getTitle());
verifyTrue(selenium.isTextPresent("success"));
***verifyTrue(selenium.isTextPresent("\"load\": 4,"));***
selenium.open("/eem/api/v1/metrics/pressure/286");
assertEquals("", selenium.getTitle());
verifyTrue(selenium.isTextPresent("success"));
selenium.open("/eem/api/v1/metrics/pressure/287");
assertEquals("", selenium.getTitle());
verifyTrue(selenium.isTextPresent("success"));
selenium.open("/eem/api/v1/metrics/pressure/288");
assertEquals("", selenium.getTitle());
verifyTrue(selenium.isTextPresent("success"));
selenium.open("/eem/api/v1/metrics/temperature/286");
assertEquals("", selenium.getTitle());
verifyTrue(selenium.isTextPresent("success"));
selenium.open("/eem/api/v1/metrics/temperature/287");
assertEquals("", selenium.getTitle());
verifyTrue(selenium.isTextPresent("success"));
selenium.open("/eem/api/v1/metrics/temperature/288");
assertEquals("", selenium.getTitle());
verifyTrue(selenium.isTextPresent("success"));
verifyTrue(selenium.isTextPresent("\"temperature\": 17"));
selenium.open("/eem/api/v1/metrics/vibration/286");
assertEquals("", selenium.getTitle());
verifyTrue(selenium.isTextPresent("success"));
selenium.open("/eem/api/v1/metrics/vibration/287");
assertEquals("", selenium.getTitle());
verifyTrue(selenium.isTextPresent("success"));
selenium.open("/eem/api/v1/metrics/vibration/288");
assertEquals("", selenium.getTitle());
verifyTrue(selenium.isTextPresent("success"));
***verifyTrue(selenium.isTextPresent("\"vibration\": 4"));***
selenium.open("/eem/api/v1/metrics");
assertEquals("", selenium.getTitle());
verifyTrue(selenium.isTextPresent("success"));
verifyTrue(selenium.isTextPresent("mm"));
verifyTrue(selenium.isTextPresent("%"));
verifyTrue(selenium.isTextPresent("kg"));
verifyTrue(selenium.isTextPresent("N/m"));
verifyTrue(selenium.isTextPresent("C"));
verifyTrue(selenium.isTextPresent("G"));
selenium.addScript("", "");
}
@After
public void tearDown() throws Exception
{
selenium.stop();
}
}
带有星号的行中包含错误的数据并且应该显示为false。它在使用IDE时显示错误,但在使用Eclipse时它表示它已经过了没有错误。
有人可以解释一下并帮我找到解决方案吗?
答案 0 :(得分:1)
我注意到你曾尝试仅使用verifyTrue
提供不正确的值,这实际上不会失败一步......你可以使用assertTrue
来达到这个目的..
verifyTrue
可以在if
之类的条件下包含verifyTrue(verifyTrue(sel.isTextPresent(“要搜索的文字”)){....}
assertTrue
答案 1 :(得分:0)
我发现在eclipse上运行时如何使测试失败。 在testMarvinDataTest方法中,在底部放入checkForVerificationErrors()方法。现在没有通过测试并显示错误