Java教程

APP测试学习七之 APP测试自动化

本文主要是介绍APP测试学习七之 APP测试自动化,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1、adb操作命令

  -手势操作命令

    -模拟点击事件

      adb shell input tap x y  # xy 为手机屏幕的坐标,参数之间用空格隔开

    -模拟滑屏事件(参数用空格隔开)

      adb shell input swipe startx starty endx endy # 起始和终止坐标

    -模拟键盘操作

      adb shell input keyevent 键值 (3表示HOME键,4表示返回键 66表示回车键)

    -模拟输入操作

      adb shell input text  内容 # 内容为要输入的内容,另外输入的内容不能是中文

  当电脑上连接多个设备使用adb device 查看设备时,如果出现offline 则需要重启一下adb服务,当连接多个手机或者模拟器时,需要使用-s device_name参数来区分adb命令是操作的那个设备

  eg:     adb -s emulator-5554 shell input keyevent 4

 

2、appium 操作入门示例

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 # Author:Richard_Kong
 4 """
 5 使用appium写的第一个代码 启动
 6 """
 7 import time
 8 
 9 from appium import webdriver
10 # app初始配置信息,这些信息要通过adb命令来查询
11 des_caps = {
12     "platformName":"android",
13     "platformVersion":"5.1.1",   # adb shell getprop ro.build.version.release
14     "deviceName":"****",
15     "appPackage":"com.baidu.homework",
16     "appActivity":".activity.init.InitActivity"
17 }
18 
19 driver = webdriver.Remote("http://localhost:4723/wd/hub",des_caps)
20 
21 time.sleep(5)
22 
23 driver.close_app()

 3、uiautomatorviewer 工具的使用

  -通过uiautomatorviewer工具可以查看app的元素信息

 

为了提高工作效率,将 androidsdk的tools目录下,将uiautomatorviewer.bat 赋值一份出来,修改为ui.bat就ok了,后续直接在dos中输入ui就可以打开,并且要将截图保存,便于后续查看 

 

4、元素定位的方法

  1)--通过resource-id来定位

    driver.find_element_by_id(resource-id的值)

  2)通过class name来定位元素

    通过元素的class 属性值来定位元素

    app中,class的值始终都只有一个。

    driver.find_element_by_class_name(class)

  3)通过xpath定位元素

    通过xpath来定位元素

    driver.find_element_by_xpath("//*[@text = 'value']")

    单个元素定位不到会报错

driver.find_element_by_id("com.baidu.homework:id/sll_phone").click()
driver.find_element_by_xpath("//*[@text ='输入手机号码']").send_keys("123456789")

显示等待  WebDriverwait() 封装的思想,将显示等待查找元素封装为一个函数,并在其他文件中引用
 1 from selenium.webdriver.support.wait import WebDriverWait
 2 from appium.webdriver.webdriver import WebDriver
 3 from appium.webdriver.webelement import WebElement
 4 
 5 
 6 def get_element(driver: WebDriver, element: WebElement) -> WebElement:
 7     """
 8     :type driver: WebDriver
 9     :param driver:
10     :param element:
11     :return: WebElement
12     driver.find_element(By.ID,"com.baidu.homework:id/sll_phone")
13     """
14     wait = WebDriverWait(driver, 10, 1)
15     element = wait.until(lambda x: x.find_element(element[0], element[1]))
16     return element

5、定位一组元素

  driver.find_elements_by_id(resource_id)

  driver.find_elements_by_class_name(class_name)

  driver.find_elements_by_xpath(xpath)

  driver.find_elements(By.ID,value)

返回的值是一个列表,如果没有找到,则返回空列表,可以通过下标来使用元素对象,下标是从0开始。

1)元素的操作:

  element.click()针对元素进行点击操作

  element.clear() 针对元素进行清空操作

  element.send_keys("value") 针对元素进行输入字符操作

  element.text  # 获取元素的文本内容

  element.loaction # 返回值是一个字典,字典中包含xy,x,y表示的是元素在手机屏幕左上角点的坐标

  获取元素的代销

  element.size # 返回的是一个字典,字典中会包含width和height,width表示宽度,height表示高度

  element.get_attribute("attribute") # 获取attribute表示的属性名称的值

    获取id时,attribute = “resource_id”

    获取的是class的值,attribute = "className"

    如果是attribute = name 获取的是text或者 content-desc(text优先,找不到text值,再去找content-desc的值)

这篇关于APP测试学习七之 APP测试自动化的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!