当我在Java中运行代码时,“verifyTextPresent”给我一个错误的结果

时间:2013-10-11 13:29:22

标签: java selenium

我使用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时它表示它已经过了没有错误。

有人可以解释一下并帮我找到解决方案吗?

2 个答案:

答案 0 :(得分:1)

我注意到你曾尝试仅使用verifyTrue提供不正确的值,这实际上不会失败一步......你可以使用assertTrue来达到这个目的..

verifyTrue

  • 是SeleneseTestCase类的一部分,是SeleniumAPI
  • 不会使您调用VerifyTrue的测试步骤失败
  • 可以在if

    之类的条件下包含verifyTrue

    (verifyTrue(sel.isTextPresent(“要搜索的文字”)){....}

assertTrue

  • JUnit API的一部分
  • 如果断言失败,测试步骤将失败
  • 不能包含在任何其他命令中

答案 1 :(得分:0)

我发现在eclipse上运行时如何使测试失败。 在testMarvinDataTest方法中,在底部放入checkForVerificationErrors()方法。现在没有通过测试并显示错误