> 文档中心 > 【Appium】验证appium环境搭建是否成功并考虑脚本需要包含的参数

【Appium】验证appium环境搭建是否成功并考虑脚本需要包含的参数


前言:接上一篇的Appium环境搭建,本篇主要通过脚本去验证环境搭建的正确,以及思考我们在编写脚本时需要考虑的几个问题。

目录

一、编写脚本需要考虑的因素

二、从代码来分析因素

2.1、使用的Appium在哪里?

2.2、模拟器使用的版本及版本号

2.3、使用的模拟器在哪里?

2.4、测试哪个App?测试内容?

三、执行脚本要做的准备工作

3.1、启动Appium服务器

3.2、启动Genymotion模拟器

3.3、执行脚本


一、编写脚本需要考虑的因素

需要考虑的必不可少的四大因素:

  • Appium访问地址
  • 模拟器对应的设备地址
  • 模拟器/真机的系统是什么?版本是什么?
  • 要测试的App是什么?在哪里?怎么测?

如下图:

二、从代码来分析因素

光说理论,肯定是听得比较懵的,还得实践走起。

给定一个Appium的计算器脚本,包含最基本的参数设置,分析脚本的组成,理解之后,我们在编写的时候就不会有什么困难了。

# V1.0 实现手机端计算器自动化测试:使用常量进行参数传递# 导入appium类库from appium.webdriver.webdriver import WebDriverfrom selenium.webdriver.common.by import Byimport time# 定义一个字典类型,存放参数设置caps = {    'automationName': 'UiAutomator2',  # Appium (默认)    'platformName': 'Android',  # 使用的手机操作系统:iOS, Android, 或者 FirefoxOS    'platformVersion': '6.0',  # 手机操作系统的版本    'deviceName': '192.168.23.101:5555',  # 使用的手机或模拟器类型,在 Andorid 上虽然这个参数目前已被忽略,但仍然需要添加上该参数,用adb devices获取    'appPackage': 'com.android.calculator2',  # 运行的 Android 应用的包名    'appActivity': '.Calculator'}  # Activity 的名字是指从你的包中所要启动的 Android acticity。他通常需要再前面添加.# 输入Appium访问路径并传入参数driver = WebDriver('http://127.0.0.1:4723/wd/hub', caps)# 传入相关测试数据,实现7+8的步骤driver.find_element(By.ID, 'com.android.calculator2:id/digit_7').click()driver.find_element(By.ID, 'com.android.calculator2:id/op_add').click()driver.find_element(By.ID, 'com.android.calculator2:id/digit_8').click()driver.find_element(By.ID, 'com.android.calculator2:id/eq').click()time.sleep(3)driver.quit()

详细参数说明可参考Appium参数,

代码中的参数说明:

  • automationName自动化测试的引擎。由于 uiautomator2 的执行效率以及 支持 Toast 验证.使得在写测试用例的时候应优先使用 uiautomator2。
  • platformName:使用的手机操作系统,一般为iOSAndroid, 或者 FirefoxOS
  • platformVersion:手机操作系统的版本
  • deviceName:可自定义写,也可写使用的手机或模拟器的设备地址,在连接之后通过adb devices获取,在 Andorid 上虽然这个参数目前已被忽略,但仍然需要添加上该参数
  • appPackage:运行的 Android 应用的包名
  • appActivity:Activity 的名字是指从你的包中所要启动的 Android acticity。他通常需要再前面添加. (例如 使用 .MainActivity 代替 MainActivity

分析简图:

2.1、使用的Appium在哪里?

通过以下代码,指定Appium服务器地址,并传入参数。

远程主机:需要填写AppiumServer服务的主机地址,默认127.0.0.1
远程端口:需要填写AppiumServer服务的主机端口,默认4723
远程路径:appium服务器的路径,默认填写/wd/hub

driver = WebDriver('http://127.0.0.1:4723/wd/hub', caps)

2.2、模拟器使用的版本及版本号

通过platformNameplatformVersion来指定版本及版本号

'platformName': 'Android''platformVersion': '6.0'

2.3、使用的模拟器在哪里?

devideName一般写模拟器/真机的名字,可以随意写,目的是为了方便自己识别。我们可以直接填写设备地址,在设备连接之后可通过adb devices获取。

appium默认使用adb list devices中的第一个。

'deviceName': '192.168.23.101:5555'

2.4、测试哪个App?测试内容?

通过appPackage来指定运行的 Android 应用的包名

通过appActivity来指定测试APP名字。

手机端打开APP之后,通过adb命令来获取:

安卓8.0以前用:adb shell dumpsys activity activities | findstr mFocusedActivity

安卓8.0以后用adb shell dumpsys activity activities | findstr mResume

'appPackage': 'com.android.calculator2''appActivity': '.Calculator'

通过元素定位来指定测试步骤。

三、执行脚本要做的准备工作

3.1、启动Appium服务器

1、启动Appium服务器,修改主机地址,一般为127.0.0.1,端口号默认为4723,然后点击Start Server。

2、启动界面如下,要一直保持开启状态。

3.2、启动Genymotion模拟器

1、点击+号新建模拟机器

2、从代码中我们可以看到是选择的Android 6.0的版本,所以选择Android 6.0,再随便选一款机型就好了,点击Next。

3、确认机器信息,默认即可,点击Install,等待安装完成。

Note:可能会因网络问题安装失败,换网,或者多点几次。

4、点击Start,启动模拟器。

5、启动界面如下:

3.3、执行脚本

回到pycharm,运行脚本,然后观察模拟器行为,appium server显示运行过程的执行情况。

所以我们可以同时观察appium server和模拟器。