史上最全 Appium 自动化测试从基础到框架实战精华学习笔记(

2020-07-13  本文已影响0人  霍格沃兹测试学院
史上最全 Appium 自动化测试从基础到框架实战精华学习笔记(一)

本文为霍格沃兹测试学院学员学习笔记。

对测试人来说,Appium 是非常重要的一个开源跨平台自动化测试工具,它允许测试人员在不同的平台(iOS、Android 等)使用同一套 API 来写自动化测试脚本,这样可大幅提升代码复用率和工作效率。

本文汇总了从 Appium 基础到自动化测试高级实战中,所涉及到的方方面面的知识点精华内容(如下所示),希望对大家快速总结和复习有所帮助。

Appium 从基础到自动化测试框架实战

  1. Appium 基础 1(环境搭建和简介)
  2. Appium 基础 2(元素定位和元素常用方法)
  3. Appium 基础 3(手势操作和 uiautomator 查找元素)
  4. Appium 基础 4(显式等待)
  5. Appium 基础 5(toast 和参数化)
  6. Appium 基础 6(webview)
  7. Appium_ 企业微信练习 (非 PO,增加和删除联系人)
  8. Appium_ 企业微信练习 (PO--增加联系人)

Appium 环境搭建

JDK 的搭建

SDK 的配置

Appium 的搭建

appium 运行的 python 代码

from appium import webdriver#设置 caps 的值desire_cap= {    #默认是 Android    "platformName":"android",    #adb devices 的 sn 名称    "deviceName":"127.0.0.1:7555",    #包名    "appPackage":"com.xueqiu.android",    #activity 名字    "appActivity":".view.WelcomeActivityAlias"}#运行 appium,前提是要打开 appium serverdriver=webdriver.Remote("http://127.0.0.1:4723/wd/hub",desire_cap)

Appium 的简介

Appium 的引擎

Appium 的设计理念

Appium 的生态工具

获取 App 的信息

Capability 设置

测试用的 apk

Android 的基础知识

Android 的布局

Android 四大组件

Android 常用的控件

控件知识

Appium 的元素定位

普通方式的定位

By 的定位方式

Xpath 的定位方式

元素的方法

元素的常用方法

属性值介绍

元素常用的属性

实战小案例 1

  1. 打开雪球 app
  2. 点击搜索输入框
  3. 向搜索输入框输入 “阿里巴巴”
  4. 在搜索的结果里选择阿里巴巴,然后点击
  5. 获取这只上香港 阿里巴巴的股价,并判断这只股价的价格>200
代码
from time import sleepfrom appium import webdriverfrom appium.webdriver.common.mobileby import MobileBy as Byclass TestFind():    #设置 caps 的值    def setup(self):        self.desire_cap= {            #默认是 Android            "platformName":"android",            #adb devices 的 sn 名称            "deviceName":"127.0.0.1:7555",            #包名            "appPackage":"com.xueqiu.android",            #activity 名字            "appActivity":".view.WelcomeActivityAlias",            "noReset":"true",            "unicodeKeyboard":True        }        #运行 appium,前提是要打开 appium server        self.driver=webdriver.Remote("http://127.0.0.1:4723/wd/hub",self.desire_cap)        self.driver.implicitly_wait(5)    def test_search(self):        """        1. 打开雪球 app        2. 点击搜索输入框        3. 向搜索输入框输入 “阿里巴巴”        4. 在搜索的结果里选择阿里巴巴,然后点击        5. 获取这只上香港 阿里巴巴的股价,并判断这只股价的价格>200        :return:        """        sleep(3)        #点击搜索框        self.driver.find_element(By.ID,"com.xueqiu.android:id/tv_search").click()        #向搜索框输入阿里巴巴        self.driver.find_element(By.ID,"com.xueqiu.android:id/search_input_text").send_keys(" 阿里巴巴 ")        #找到搜索框预览结果的阿里巴巴,并点击        self.driver.find_element(By.XPATH,"//*[@resource-id='com.xueqiu.android:id/name' and @text=' 阿里巴巴 ']").click()        #选择 HK 股价的元素        prices=self.driver.find_elements(By.ID,"com.xueqiu.android:id/current_price")[1]        #提取股价的 text 属性        price=float(prices.text)        #判断股价是否大于 200        assert price > 200

实战小案例 2

  1. 打开雪球首页
  2. 定位首页的搜索框
  3. 判断搜索框是否可用,并查看搜索框 name 属性值
  4. 打印搜索框这个元素的左上角坐标和它的宽高
  5. 向搜索框输入:alibaba
  6. 判断阿里巴巴是否可见
  7. 如果可见,打印搜索成功点击,如果不可见,打印搜索失败
代码
from time import sleepfrom appium import webdriverfrom appium.webdriver.common.mobileby import MobileBy as Byclass TestFind():    #设置 caps 的值    def setup(self):        self.desire_cap= {            #默认是 Android            "platformName":"android",            #adb devices 的 sn 名称            "deviceName":"127.0.0.1:7555",            #包名            "appPackage":"com.xueqiu.android",            #activity 名字            "appActivity":".view.WelcomeActivityAlias",            "noReset":"true",            "unicodeKeyboard":True        }        #运行 appium,前提是要打开 appium server        self.driver=webdriver.Remote("http://127.0.0.1:4723/wd/hub",self.desire_cap)        self.driver.implicitly_wait(5)    def test_element_function(self):        """        1. 打开雪球首页        2. 定位首页的搜索框        3. 判断搜索框是否可用,并查看搜索框 name 属性值        4. 打印搜索框这个元素的左上角坐标和它的宽高        5\. 向搜索框输入:alibaba        6. 判断阿里巴巴是否可见        7. 如果可见,打印搜索成功点击,如果不可见,打印搜索失败        :return:        """        sleep(8)        #找到搜索框的元素        search=self.driver.find_element(By.ID, "com.xueqiu.android:id/tv_search")        #当搜索框是可用(类似可点击)后才进行下面的操作,is_enabled() 返回 Ture or False        if search.is_enabled():            #打印搜索框的 text 值            print(search.text)            #打印搜索框左上角的坐标            print(search.location)            #打印搜索框的高和宽            print(search.size)            #点击搜索框,才可以进行下面的操作            search.click()            #在搜索框中输入阿里巴巴            self.driver.find_element(By.ID, "com.xueqiu.android:id/search_input_text").send_keys(" 阿里巴巴 ")            #定义找到预览结果的阿里巴巴的元素            alibaba=self.driver.find_element(By.XPATH, "//*[@resource-id='com.xueqiu.android:id/name' and @text=' 阿里巴巴 ']")            #当 alibaba 元素可见,打开搜索成功,否则打印搜索失败            if alibaba.is_displayed():                print(" 搜索成功 ")            else:                print(" 搜索失败 ")

更多内容,我们在后续文章分享。

(文章来源于霍格沃兹测试学院)

上一篇 下一篇

猜你喜欢

热点阅读