一、准备工作
在Java+Appium自动化下生成测试前需要做一些准备工作。
1. 安装Appium
Appium是一种基于客户端/服务器架构的自动化测试工具,它支持移动设备(Android和iOS)和桌面应用程序。在Java+Appium自动化下生成测试之前,您需要先在电脑上安装Appium。
public class AppiumSetup { private AppiumDriverdriver; public AppiumDriver setup() throws MalformedURLException { DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability("deviceName", "Android Emulator"); capabilities.setCapability("platformName", "Android"); capabilities.setCapability("appPackage", "com.android.settings"); capabilities.setCapability("appActivity", ".Settings"); URL url = new URL("http://127.0.0.1:4723/wd/hub"); driver = new AndroidDriver<>(url, capabilities); return driver; } }
2. 安装Java SDK
Java SDK必须安装在电脑上才能运行Appium,您可以从Oracle官网下载Java SDK并安装它。
3. 开始使用Appium
在设置好Appium和Java SDK之后,您可以编写Java代码,并将其运行在Appium中。
二、编写测试脚本
在Java+Appium自动化下生成测试前,您需要编写测试脚本来完成测试任务。以下是一个简单的测试脚本实例。
1. 启动APP并输入用户名和密码
public class LoginTest { private AppiumDriverdriver; @Before public void setup() throws MalformedURLException { DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability("deviceName", "Android Emulator"); capabilities.setCapability("platformName", "Android"); capabilities.setCapability("appPackage", "com.example.app"); capabilities.setCapability("appActivity", "com.example.app.activities.LoginActivity"); URL url = new URL("http://127.0.0.1:4723/wd/hub"); driver = new AndroidDriver<>(url, capabilities); } @Test public void testLogin() { WebElement userName = driver.findElement(By.id("userName")); userName.sendKeys("user1"); WebElement password = driver.findElement(By.id("password")); password.sendKeys("password1"); driver.findElement(By.id("loginButton")).click(); } @After public void teardown() { driver.quit(); } }
2. 测试页面中的元素和操作
public class ElementTest { private AppiumDriverdriver; @Before public void setup() throws MalformedURLException { DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability("deviceName", "Android Emulator"); capabilities.setCapability("platformName", "Android"); capabilities.setCapability("appPackage", "com.example.app"); capabilities.setCapability("appActivity", "com.example.app.activities.MainActivty"); URL url = new URL("http://127.0.0.1:4723/wd/hub"); driver = new AndroidDriver<>(url, capabilities); } @Test public void testElement() { WebElement userName = driver.findElement(By.id("userName")); userName.clear(); userName.sendKeys("user1"); WebElement password = driver.findElement(By.id("password")); password.sendKeys("password1"); driver.findElement(By.id("loginButton")).click(); WebElement menuButton = driver.findElement(By.id("menuButton")); menuButton.click(); WebElement settingButton = driver.findElement(By.id("settingButton")); settingButton.click(); WebElement logoutButton = driver.findElement(By.id("logoutButton")); logoutButton.click(); } @After public void teardown() { driver.quit(); } }
三、测试执行和报告生成
在Java+Appium自动化下生成测试后,您需要执行测试并生成报告。以下是一个测试执行示例。
public class TestRunner { public static void main(String[] args) { TestRunner runner = new TestRunner(); runner.run(); } private void run() { Result result = JUnitCore.runClasses(LoginTest.class, ElementTest.class); for (Failure failure : result.getFailures()) { System.out.println(failure.toString()); } System.out.println(result.wasSuccessful()); } }
此外,您可以使用JUnit生成测试报告,这样您就可以更轻松地查看测试结果。
public class TestRunner { public static void main(String[] args) { Result result = JUnitCore.runClasses(LoginTest.class, ElementTest.class); for (Failure failure : result.getFailures()) { System.out.println(failure.toString()); } System.out.println(result.wasSuccessful()); JUnitReport report = new JUnitReport(result); report.toFile("report.xml"); report.toHtml("report.html"); } }
四、小结
Java+Appium自动化下生成测试是高效且可靠的测试方式。在编写测试脚本之前,您需要准备好Appium和Java SDK。然后,您可以编写Java代码并将其运行在Appium中。最后,您需要执行测试并生成测试报告。