我正在尝试使用testNG自动进行网站测试。
假设我为每个网页创建了3个测试用例(尽管在我的案例中有50个以上的测试用例,但是为了简化问题,我只考虑了3个)。
现在,我的前两个测试用例通过了,但是我的第三个测试用例却失败了。我正在将代码更改到该第三页,并且我只想运行该第三测试用例,但是当我运行我的代码时,每次创建新的IE驱动程序实例并从头开始进行测试。
如何使用现有驱动程序实例并仅测试第三个网页。我尝试使用Google搜索,但是找不到任何有用的信息。
任何帮助将不胜感激。
答案 0 :(得分:0)
如果您想忽略特定的测试,可以使用以下代码段:
#systemProp.https.proxyPort=port
#systemProp.http.proxyHost=proxy
org.gradle.jvmargs=-Xmx2048m -XX\:MaxPermSize\=512m -XX\:+HeapDumpOnOutOfMemoryError -Dfile.encoding\=UTF-8 -Djava.net.preferIPv4Stack\=true
org.gradle.daemon=true
#systemProp.https.proxyHost=proxy
org.gradle.configureondemand=false
#systemProp.http.proxyPort=port
android.enableBuildCache=true
执行此类时,将仅执行第二次测试。我不知道您是否将所有50个测试都存储在一个类中(希望不是),但是如果是,则可以对测试进行分组。为此,您可以使用以下示例:
import org.testng.Assert;
import org.testng.annotations.Test;
public class IgnoreTest {
@Test(enabled = false) // this test will be ignored
public void testPrintMessage() {
System.out.println("This test is ignored");
}
@Test
public void testSalutationMessage() { // this will be executed
System.out.println("Test works");
}
}
然后import org.testng.Assert;
import org.testng.annotations.Test;
public class GroupTestExample {
@Test(groups = { "functest", "checkintest" })
public void testPrintMessage() {
System.out.println("Inside testPrintMessage()");
}
@Test(groups = { "checkintest" })
public void testSalutationMessage() {
System.out.println("Inside testSalutationMessage()");
}
@Test(groups = { "functest" })
public void testingExitMessage() {
System.out.println("Inside testExitMessage()");
}
}
文件将如下所示:
xml
然后在编译测试类之后,使用以下命令:
<?xml version = "1.0" encoding = "UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name = "Suite1">
<test name = "test1">
<groups>
<run>
<include name = "functest" />
</run>
</groups>
<classes>
<class name = "GroupTestExample" />
</classes>
</test>
</suite>
您将在本教程中获得更多解释的信息: