25
08

安装及配置Appium(四)

由于我们已经对Selenium的操作非常熟悉了,包括元素定位,包括断言方式和常规操作等,所以对上述测试脚本的作用也是一目了然的。所以基本的操作部分本章内容将不再追述,而将更多精力关注在与Appium直接相关的与移动端相结合的一些测试技术上来。 ​

本周分享《安装及配置Appium》实验中的快速执行安装测试

回顾本章节的前期分享,请点击

教材连载:安装及配置Appium(一)

教材连载:安装及配置Appium(二)

教材连载:安装及配置Appium(三)



当完成Appium的安装并成功启动后,现在我们来完成一个简单的Python自动化测试脚本,对模拟器上的小米计算器进行一个简单的测试,操作步骤如下:

(1)为Python安装Appium Client库,命令为:“pip install Appium-Python-Client”。

(2)启动模拟器,运行小米计算器。

(3)进入Android SDK目录下的“tools”目录,并运行“uiautomatorviewer.bat”工具来对当前模拟器上的界面元素进行识别。比如我们可以通过该工具识别到小米计算器的按钮的属性特征(启动工具后点击“Device Screenshot”按钮即可开始识别当前界面元素),如下图所示。

20191119_112124_862.png



从上图可以看到,按钮“9”对应的文本内容即“text”属性显示为“9”,并且对应的“resource-id”为“com.miui.calculator:id/btn_9”(即按钮的唯一编号,与HTML元素的id属性是一致的),该按钮所属的“class”为“android.widget.Button”(与HTML元素的class属性也是一致的)


上述的这些属性都可以用作元素的识别属性。


另外一点需要注意的是,如果Appium已经启动,则UI Automator Viewer无法获取元素属性,所以要使用该工具,请先确保Appium已经停止。


(4)查看当前模拟器的Android内核版本号,并记录下来。

(5)运行命令“adb devices”查看当前模拟器的设备编号,并记录下来。

(6)打开Pycharm,并完成如下代码的开发。详细说明请查看代码备注。


from appium import webdriver    # 导入webdriver模块
  from time import sleep
  
  desired_caps = {}       # 定义webdriver的兼容性设置字典对象用于设置核心参数
  desired_caps['platformName'] = 'Android'    # 指定测试Android平台
  desired_caps['platformVersion'] = '4.4.2'   # 指定移动端的版本号
  desired_caps['deviceName'] = 'Appium'       # 指定设备名称
  desired_caps['appPackage'] = 'com.miui.calculator'  # 指定要启动的包
  desired_caps['appActivity'] = '.cal.CalculatorActivity'   # 指定启动的主类程序
  desired_caps['udid'] = '127.0.0.1:62001'    # 指定设备编号(adb devices输出结果)
  
  # 实例化webdriver,并指定appium服务器访问地址,一定要加上/wd/hub
  driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',   desired_caps)
  sleep(3)
  
  # 利用与webdriver一样的API接口实现对象操作
  driver.find_element_by_id("btn_c_1").click()
  driver.find_element_by_id("com.miui.calculator:id/btn_5").click()
  driver.find_element_by_id("btn_plus").click()
  driver.find_element_by_id("btn_7").click()    #resouce-id属性可以简写
  driver.find_element_by_xpath("//android.widget.ImageView[@content-desc='等于']").click()
  
  # 利用xpath查找运行结果并进行断言
  result = driver.find_element_by_xpath("//android.widget.TextView[@text='12']")
  # 由于运算结果无法直接定位,所以利用text=12来定位该元素,如果没有找到该元素,则断言失败
  if result != None and result.get_attribute("text")   == "12":
      print("测试成功.")
  else:
      print("测试失败.")



(7)确保Android移动端没有被锁屏,确保Appium正常启动,运行上述代码,观察Android模拟器的变化。确认是否正常安装了“Appium Settings”和“Unlock”两个应用程序,并正常启动了小米计算器进行自动化测试。


由于我们已经对Selenium的操作非常熟悉了,包括元素定位,包括断言方式和常规操作等,所以对上述测试脚本的作用也是一目了然的。所以基本的操作部分本章内容将不再追述,而将更多精力关注在与Appium直接相关的与移动端相结合的一些测试技术上来。



为了答谢大家对蜗牛学院的支持,蜗牛学院将会定期对大家免费发放干货,敬请关注蜗牛学院的官方微信。


20190320_095757_834.jpg






版权所有,转载本站文章请注明出处:蜗牛学苑, https://www.woniuxy.cn/article/358