天天看點

appium測試之擷取appPackage和appActivity

appPackage和appActivity 進行appium自動化測試非常重要的兩個參數,我們所測試的APP不同,這兩個參數肯定也是不一樣的。那如何快速的擷取這APP的這兩個參數呢?我這裡介紹兩個方法。

appium測試之擷取appPackage和appActivity
import org.openqa.selenium.remote.DesiredCapabilities;
import java.net.MalformedURLException;
import java.net.URL;
import io.appium.java_client.android.AndroidDriver;


public class appiumZhihu {

    public static void main(String[] args) throws MalformedURLException, InterruptedException {

        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability("deviceName", "Android Emulator");
        capabilities.setCapability("automationName", "Appium");
        capabilities.setCapability("platformName", "Android");
        capabilities.setCapability("platformVersion", "6.0");
        capabilities.setCapability("appPackage", "??");  
        capabilities.setCapability("appActivity", "??");  

        AndroidDriver driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);

    }
}      
appium測試之擷取appPackage和appActivity

方法一

首先,你要有一個APP的安裝包 xxx.apk,

然後,通過這個解壓工具将.apk解壓。如下:

appium測試之擷取appPackage和appActivity

 通過notepad++ 打開AndroidManifest.xml 檔案,在裡面搜尋:manifest對應的就是appPackage。

appium測試之擷取appPackage和appActivity

搜尋:activity對應的就是appActivity。(activity關鍵字很多,你要注意辨識。)

appium測試之擷取appPackage和appActivity

方法二

這種方法也比較簡單,主要針對你沒有.apk包的情況,比如Android原生自帶的APP(電腦、通訊錄、短信...),可以通過adb 指令。

1,打開APP。

2,執行> adb logcat>D:/log.txt

appium測試之擷取appPackage和appActivity

3, 胡亂的對APP做一些操作。

4, Ctrl+c 結束adb指令。

5, 打開log.txt檔案,搜尋:Displayed 

appium測試之擷取appPackage和appActivity

appPackage:   com.android.messaging

appActivity:.ui.conversationlist.ConversationListActivity

方法三 (我是這個方法檢視到的)

使用 adb 指令,首先在android手機或模拟器上打開App。輸入下面的指令。

adb shell dumpsys window windows | findstr mFocusedApp      

方法四

評論所提供的方法,使用aatp指令。我的aapt工具位于“D:\android\SDK\build-tools\28.0.3\aapt.exe” 目錄。

D:\android\SDK\build-tools\28.0.3> aapt dump badging d:\\test.apk