前言:接上一篇的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 WebDriver
from selenium.webdriver.common.by import By
import 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:使用的手机 *** 作系统,一般为
iOS
,Android
, 或者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、模拟器使用的版本及版本号
通过platformName和platformVersion来指定版本及版本号
'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和模拟器。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)