使用appium做自动化测试,需要两个重要的APP参数,就是“appPackage”和“appActivity”:
import io.appium.java_client.AppiumDriver;
import io.appium.java_client.MobileBy;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
public class TestDemo {
private AppiumDriver<WebElement> driver;
@Before
public void before() throws MalformedURLException {
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("platformName", "Android");
capabilities.setCapability("deviceName", "FXXX19120151159");
capabilities.setCapability("appPackage", "com.leo");
capabilities.setCapability("appActivity",".view.WelcomeActivityAlias");
driver = new AppiumDriver<WebElement>(new URL("http://127.0.0.1:4723/wd/hub"),capabilities);
}
那么如何获取这两个参数呢
- 1、在你的设备上打开APP
- 2、打开bash或cmd(我因为在Windows上装了Ubuntu子系统,所以可以直接使用bash命令操作,cmd中可以用findstr代替grep或者用把管道符后面的命令用双引号给括起来),执行命令“
adb logcat | grep ActivityManager
”或“adb logcat | grep Displayed
”都可以
(这里也不完全固定,比如我发现企业微信的入口就是以ActivityManager: START开头的) - 3、在要测试的APP上任意进行一些操作
- 4、检查搜索结果,获取“appPackage”和“appActivity”(如图,小红框中前一个为“appPackage”,后一个为“appActivity”,很多开发写启动页入口会用Welcome开头,但是也不完全是,所以最好的就是找第一个出现的一般就是启动页入口)
注:如果不确定启动入口是否寻找正确的话,可以使用“adb shell am start -W -n 你找到的启动入口 -S”来验证,这个命令就是杀死当前这个进程,然后重启新启动;如果重启成功则可说明查找正确。