我是一个基本的 java 用户,目前我正在尝试创建一个测试我的电子邮件功能的自动化测试用例。所以我的想法是:
- 在 java 中使用 selenium webdriver,该程序创建一个线程来启动浏览器,转到 google 电子邮件,创建一个测试电子邮件并将其发送到我的 yahoo 电子邮件帐户。之后,它会无限期地休眠,直到它收到一条消息或发送另一封电子邮件的信号。
- 在此过程中,正在创建另一个线程以访问 yahoo 电子邮件帐户并监控新传入的电子邮件。一旦它收到一封电子邮件,就会向第一个线程发送一条消息或信号以发送另一封电子邮件。
- 整个过程会再重复两次,所以gmail和雅虎邮箱之间会交换三封邮件。
到目前为止,代码是这样的。我不确定如何从这里取得进展。更具体地说,我不确定如何在其中添加线程,以便两个实例同时运行。
import static org.junit.Assert.fail;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import java.util.concurrent.TimeUnit;
public class multi_test {
public WebDriver driver1;
protected WebDriver driver2;
public String baseUrl1;
public String baseUrl2;
protected StringBuffer verificationErrors = new StringBuffer();
public class setup1 implements Runnable{
public void run(){
driver1.get(baseUrl1);
}
}
public class setup2 implements Runnable{
public void run(){
driver2.get(baseUrl2);
}
}
@Before
public void setUp() throws Exception {
driver1 = new FirefoxDriver();
baseUrl1 = "http://www.yahoo.com";
driver1.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
System.out.println(driver1);
driver2 = new FirefoxDriver();
baseUrl2 = "https://google.com";
driver2.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
}
@Test
public void testing1() throws Exception {
driver1.get(baseUrl1);
}
@After
public void tearDown() throws Exception {
//driver1.quit();
//driver2.quit();
String verificationErrorString = verificationErrors.toString();
if (!"".equals(verificationErrorString)) {
fail(verificationErrorString);
}
}
}