目录
前言:
一、测试类
二、连接两个 Android 设备或启动两个虚拟机
三、项目路径下新建两个 testng.xml
四、开启两个 appium server
五、导出依赖
六、执行测试
七、查看报告
前言:
Appium是一个流行的移动应用自动化测试工具,它可以用于测试Android应用程序。TestNG是一个功能强大的测试框架,它提供了丰富的功能和灵活的配置选项,可以帮助测试人员编写和执行测试用例。
一、测试类
package com.testerhome;import io.appium.java_client.android.AndroidDriver;import java.net.MalformedURLException;
import java.net.URL;import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.AfterClass;public class Suite1 {public String port;public String udid;private AndroidDriver driver;@Testpublic void switches() throws InterruptedException {WebElement sound = driver.findElementByAndroidUIAutomator("new UiSelector().text(\"Sound\")");sound.click();System.out.println("checked");Thread.sleep(2000);System.out.println(Thread.currentThread());}@BeforeSuite@Parameters({ "port", "udid" })public void beforeSuite(String port, String udid) {this.port = port;this.udid = udid;}@BeforeClasspublic void beforeClass() throws MalformedURLException{System.out.println(“port is ” + port + “, udid is " + udid);DesiredCapabilities capabilities = new DesiredCapabilities();capabilities.setCapability("deviceName","device");capabilities.setCapability("automationName","Appium");capabilities.setCapability("platformVersion", "4.4");capabilities.setCapability("udid", udid);capabilities.setCapability("appPackage", "com.android.settings");capabilities.setCapability("appActivity", ".Settings");driver = new AndroidDriver(new URL("http://127.0.0.1:" + port + "/wd/hub"), capabilities);}@AfterClasspublic void afterClass() {driver.quit();}}
二、连接两个 Android 设备或启动两个虚拟机
使用adb devices
获取 udid
三、项目路径下新建两个 testng.xml
testng1.xml
<?xml version="1.0" encoding="UTF-8"?>
<suite name="Suite1"><parameter name = "port" value = "4723"/><parameter name = "udid" value = "emulator-5554"/><test name="Test"> <classes> <class name="com.testerhome.Suite1"/> </classes> </test>
</suite>
testng2.xml
<?xml version="1.0" encoding="UTF-8"?>
<suite name="Suite2"><parameter name = "port" value = "4725"/><parameter name = "udid" value = "emulator-5556"/><test name="Test"> <classes> <class name="com.testerhome.Suite1"/> </classes> </test>
</suite>
四、开启两个 appium server
如果命令行启动加参数appium -p 4723 -bp 4724
appium -p 4725 -bp 4726
如果是图形界面,修改:
第一个:
General Settings 里的 Port ,改为 4723
Android Settings 里的 Bootstrap Port ,改为 4724
第二个:
General Settings 里的 Port ,改为 4725
Android Settings 里的 Bootstrap Port ,改为 4726
五、导出依赖
因为是用 maven 工程创建的,所以先导出依赖到项目路径下的 lib 文件夹mvn dependency:copy-dependencies -DoutputDirectory=lib
六、执行测试
先用 Maven 串行执行一次以编译出 Class 文件mvn clean test
然后java -classpath ".\target\test-classes" -Djava.ext.dirs=lib org.testng.TestNG -suitethreadpoolsize 2 testng1.xml testng2.xml
如果没有配置 TestNG 环境变量java -classpath ".\target\test-classes;D:\Programs\testng-6.8\testng-6.8.jar" -Djava.ext.dirs=lib org.testng.TestNG -suitethreadpoolsize 2 testng1.xml testng2.xml
七、查看报告
默认在项目路径下的 test-output 文件夹
作为一位过来人也是希望大家少走一些弯路
在这里我给大家分享一些自动化测试前进之路的必须品,希望能对你带来帮助。
(软件测试相关资料,自动化测试相关资料,技术问题答疑等等)
相信能使你更好的进步!
点击下方小卡片