1

Selenium IDE を使用して記録されたテストを作成しました。使用したコマンドの 1 つは 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 を使用すると、エラーなしで合格したと表示されます。

誰かがこれを説明して、解決策を見つけるのを手伝ってくれませんか?

4

2 に答える 2

1

only を使用して誤った値を指定しようとしたことに気付きました。verifyTrueこれは実際にはステップを失敗させません...assertTrueこの目的のために使用できます..

verifyTrue

  • SeleneseTestCase クラスの一部であり、SeleniumAPI です
  • VerifyTrue を呼び出しているテスト ステップは失敗しません。
  • if のような条件に verifyTrue を含めることができます

    (verifyTrue( sel.isTextPresent("検索するテキスト")) { .... }

assertTrue

  • JUnit API の一部
  • アサーションが失敗すると、テスト ステップは失敗します
  • 他のコマンドに含めることはできません
于 2013-10-14T10:00:10.480 に答える
0

Eclipseで実行するとテストが失敗する方法を見つけました。testMarvinDataTest メソッドでは、一番下に checkForVerificationErrors() メソッドを入れます。これでテストに失敗し、エラーが表示されます

于 2013-10-22T11:57:54.320 に答える