满堂花醉三千客,一剑霜寒十四州。这篇文章主要讲述史上最全 Appium 自动化测试从基础到框架实战精华学习笔记相关的知识,希望能为你提供帮助。
本文为霍格沃兹测试学院学员学习笔记,进阶学习文末加群。
对测试人来说,Appium 是非常重要的一个开源跨平台自动化测试工具,它允许测试人员在不同的平台(ios、android 等)使用同一套 API 来写自动化测试脚本,这样可大幅提升代码复用率和工作效率。
【史上最全 Appium 自动化测试从基础到框架实战精华学习笔记】本文汇总了从 Appium 基础到自动化测试高级实战中,所涉及到的方方面面的知识点精华内容(如下所示),希望对大家快速总结和复习有所帮助。
Appium 从基础到自动化测试框架实战
Appium 环境搭建JDK 的搭建
SDK 的配置
Appium 的搭建
appium 运行的 python 代码from&
nbsp;
appium&
nbsp;
import&
nbsp;
webdriver
#设置&
nbsp;
caps&
nbsp;
的值
desire_cap=&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
#默认是&
nbsp;
Android
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
quot;
platformName&
quot;
:&
quot;
android&
quot;
,
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
#adb&
nbsp;
devices&
nbsp;
的&
nbsp;
sn&
nbsp;
名称
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
quot;
deviceName&
quot;
:&
quot;
127.0.0.1:7555&
quot;
,
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
#包名
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
quot;
appPackage&
quot;
:&
quot;
com.xueqiu.android&
quot;
,
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
#activity&
nbsp;
名字
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
quot;
appActivity&
quot;
:&
quot;
.view.WelcomeActivityAlias&
quot;
#运行&
nbsp;
appium,前提是要打开&
nbsp;
appium&
nbsp;
server
driver=webdriver.Remote(&
quot;
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
代码from&
nbsp;
time&
nbsp;
import&
nbsp;
sleep
from&
nbsp;
appium&
nbsp;
import&
nbsp;
webdriver
from&
nbsp;
appium.webdriver.common.mobileby&
nbsp;
import&
nbsp;
MobileBy&
nbsp;
as&
nbsp;
By
class&
nbsp;
TestFind():
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
#设置&
nbsp;
caps&
nbsp;
的值
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
def&
nbsp;
setup(self):
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
self.desire_cap=&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
#默认是&
nbsp;
Android
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
quot;
platformName&
quot;
:&
quot;
android&
quot;
,
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
#adb&
nbsp;
devices&
nbsp;
的&
nbsp;
sn&
nbsp;
名称
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
quot;
deviceName&
quot;
:&
quot;
127.0.0.1:7555&
quot;
,
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
#包名
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
quot;
appPackage&
quot;
:&
quot;
com.xueqiu.android&
quot;
,
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
#activity&
nbsp;
名字
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
quot;
appActivity&
quot;
:&
quot;
.view.WelcomeActivityAlias&
quot;
,
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
quot;
noReset&
quot;
:&
quot;
true&
quot;
,
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
quot;
unicodeKeyboard&
quot;
:True
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
#运行&
nbsp;
appium,前提是要打开&
nbsp;
appium&
nbsp;
server
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
self.driver=webdriver.Remote(&
quot;
http://127.0.0.1:4723/wd/hub",self.desire_cap)
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
self.driver.implicitly_wait(5)
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
def&
nbsp;
test_search(self):
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
quot;
&
quot;
&
quot;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
1.&
nbsp;
打开雪球&
nbsp;
app
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
2.&
nbsp;
点击搜索输入框
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
3.&
nbsp;
向搜索输入框输入&
nbsp;
“阿里巴巴”
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
4.&
nbsp;
在搜索的结果里选择阿里巴巴,然后点击
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
5.&
nbsp;
获取这只上香港&
nbsp;
阿里巴巴的股价,并判断这只股价的价格&
gt;
200
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
:return:
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
quot;
&
quot;
&
quot;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
sleep(3)
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
#点击搜索框
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
self.driver.find_element(By.ID,&
quot;
com.xueqiu.android:id/tv_search&
quot;
).click()
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
#向搜索框输入阿里巴巴
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
self.driver.find_element(By.ID,&
quot;
com.xueqiu.android:id/search_input_text&
quot;
).send_keys(&
quot;
&
nbsp;
阿里巴巴&
nbsp;
&
quot;
)
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
#找到搜索框预览结果的阿里巴巴,并点击
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
self.driver.find_element(By.XPATH,&
quot;
//*[@resource-id=com.xueqiu.android:id/name
and
@text=
阿里巴巴
]").click()
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
#选择&
nbsp;
HK&
nbsp;
股价的元素
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
prices=self.driver.find_elements(By.ID,&
quot;
com.xueqiu.android:id/current_price&
quot;
)[1]
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
#提取股价的&
nbsp;
text&
nbsp;
属性
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
price=float(prices.text)
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
#判断股价是否大于&
nbsp;
200
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
assert&
nbsp;
price&
nbsp;
&
gt;
&
nbsp;
200
实战小案例 2
代码from&
nbsp;
time&
nbsp;
import&
nbsp;
sleep
from&
nbsp;
appium&
nbsp;
import&
nbsp;
webdriver
from&
nbsp;
appium.webdriver.common.mobileby&
nbsp;
import&
nbsp;
MobileBy&
nbsp;
as&
nbsp;
By
class&
nbsp;
TestFind():
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
#设置&
nbsp;
caps&
nbsp;
的值
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
def&
nbsp;
setup(self):
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
self.desire_cap=&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
#默认是&
nbsp;
Android
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
quot;
platformName&
quot;
:&
quot;
android&
quot;
,
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
#adb&
nbsp;
devices&
nbsp;
的&
nbsp;
sn&
nbsp;
名称
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
quot;
deviceName&
quot;
:&
quot;
127.0.0.1:7555&
quot;
,
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
#包名
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
quot;
appPackage&
quot;
:&
quot;
com.xueqiu.android&
quot;
,
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
#activity&
nbsp;
名字
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
&
nbsp;
推荐阅读
- 如何使用WindowsSever2019安装网站程序()
- 全流程开发 | 高并发电商服务系统 | 第 6 关 | 登录模块开发
- 公司官网建站笔记(腾讯云服务器CentOS8.2安装界面环境,使用vnc远程登陆并搭建轻量级Qt服务器)
- 数据结构与算法插入排序分析
- oracle拨云见日第8篇之Oracle11.2.0.1.0升级11.2.0.4.3
- 2022 Adobe Certified Professional 世界大赛中国赛区总决赛完美收官
- 路由基础之思科实验ACL Telnet VLAN划分端口聚合的配置
- 如何快速开发一个古诗词小程序
- 面试|面试,你真的会吗()