app自动化如何获取appPackage和appActivity-mac系统

app自动化如何获取appPackage和appActivity-mac系统

大家都知道,appium的核心是一个
对外暴露一系列REST API供client调用的server。大致工作过程是这样的,servier监听一个端口,接收client发送过来的command,再把这些command转换为移动设备可以理解的形式发送给移动设备,移动设备执行完这些command后将结果再返回给appium server,server再将结果返回给client。
而client和server之间是通过session进行对话的,所有的自动化程序都是在这个session上下文中进行。因此,无论何种客户端库,都会先给服务器发起一个会话,其实就是给服务器发起一个POST/session的请求,请求中包含一个Desired Capabilites(预期能力)。这是server就会创建一个会话,并返回一个全剧唯一的session id,用于后续使用。其实这个session id 就代表着这个自动化使用的是哪个浏览器,或者移动设备。
这里大家就可以猜到,这个Desired Capabilites(预期能力)应该就是告诉server我想要打开什么样的设备,这个设备具有怎样的能力。其实Desired Capabilities就是一系列的键值对集合,用来告诉servier启动什么样的自动化会话。而我们今天要说的appPackage和appActivity就是Desired Capabilites(预期能力)的其中两个。这两个Capabilite是Android设备特有的,用来告诉server要打开android设备的哪个app。
那么这两个东西怎么找到呢,如果是测试

### 使用Appium实现移动应用自动化测试 #### 安装配置Appium环境 为了能够顺利运行基于Python编写的Appium自动化测试脚本,需先完成一系列准备工作。这包括但不限于下载并安装Java Development Kit (JDK),Android SDK以及Node.js等必要组件[^1]。 对于Windows操作系统而言,在命令提示符下输入`java -version`, `adb devices` `node -v` 来验证上述软件是否已成功安装;而对于Mac OS X用户,则可以利用Homebrew简化整个过程。 接着,从官方网站获取最新版本的Appium Server,并按照官方文档指示完成其部署工作。此时应该能通过访问http://localhost:4723/wd/hub确认服务端口处于监听状态。 #### 设置Desired Capabilities参数 在启动任何一次新的会话之前,必须定义一组描述目标应用程序特性的能力(capability)集合。这些属性告知Appium有关待测对象的信息,例如平台类型、设备型号、APK文件路径等等[^5]。 下面是一个典型的desired capabilities字典结构: ```python desired_caps = { 'platformName': 'Android', 'deviceName': 'emulator-5554', # 或者真实的物理设备序列号 'appPackage': 'com.example.app.package.name', 'appActivity': '.MainActivity' } ``` 其中`'platformName'`指定了被测系统的种类(iOS还是Android),而`'deviceName'`则对应具体连接至本地机器上的某台真机或是虚拟装置实例的名字。至于后者两个键值对则是用来指定即将加载的应用程序入口点——即包名(`appPackage`)与初始界面(`appActivity`)。 #### 编写第一个简单的测试案例 一旦所有的前期准备就绪之后就可以着手创建实际的测试逻辑了。这里给出一段基本的例子用于展示如何借助于Python绑定库(appium-python-client)同远程WebDriver交互从而控制模拟器/真实手机上正在运行的目标进程: ```python from appium import webdriver driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) try: element = driver.find_element_by_accessibility_id("Some Button") # 替换成具体的控件标识符 element.click() finally: driver.quit() # 测试结束后记得释放资源 ``` 这段代码片段展示了怎样建立一个指向本地运行着的服务节点的新客户端链接,随后尝试定位页面内的某个特定按钮并通过调用`.click()`方法触发点击事件。无论操作成功与否都会确保最终执行到最后一行语句以终止当前对话并断开网络连接。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值