【Appium】 课程全笔记(录播+直播课)链接:
Appium基础1(环境搭建和简介)
Appium基础2(元素定位和元素常用方法)
Appium基础3(手势操作和uiautomator查找元素)
Appium基础4(显式等待)
Appium基础5(toast和参数化)
Appium基础6(webview)
Appium_企业微信练习(非PO,增加和删除联系人)
Appium_企业微信练习(PO–增加联系人)
Appium环境搭建
jdk的搭建
- 下载1.8的jdk
- 新建环境变量:JAVA_HOME 值为:D:\Program Files\Java\jdk1.7.0
- 新建环境变量:CLASSPATH 值为:.;%JAVA_HOME%\lib;(注意:点号表示当前目录,不能省略)
- 在系统变量Path的值的前面加入以下内容:%JAVA_HOME%\bin
sdk的配置
- 下载sdk
- 打开sdk的sdk manager,安装tools前3个东西和google的usb驱动
- 配置Android home里面的platform-tools和tools
appium的搭建
- 安装node.js,配置node.js的环境变量
- npm install -g cnpm --registry=https://registry.npm.taobao.org
- cnpm install -g appium
- cnpm install -g appium-doctor
- pip install appium-python-client
appium运行的python代码
- mumu连接adb是:adb connect 127.0.0.1:7555
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 server
driver=webdriver.Remote("http://127.0.0.1:4723/wd/hub",desire_cap)
Appium的简介
appium的引擎
- Android是uiautomator2
- ios是xcuitest
appium的设计理念
- webdriver是基于http协议的,第一连接会建立一个session会话,并通过post发送一个json告知服务端相关测试信息
- client/server设计模式
- 客户端通过webdriver json wire协议与服务器通讯
- 多语言支持
- server可以放在任何地方
- 服务器nodejs开发的http服务
- appium使用appium-xcuitest-driver来测试iphone设备,其中需要安装Facebook出的WDA(webdriver agent)来驱动ios测试
appium的生态工具
- adb:Android控制工具
- appium Destkop:内嵌appium server和inspector的综合工具
- appium server:appium的核心工具,命令行工具
- appium client:各种语言的客户端封装库,用户连接appium server,包含python、java、ruby等
- appcrawler自动遍历工具
获取app的信息
- 获取当前元素界面:adb shell dumpsys activity top
- 获取任务列表:adb shell dumpsys activity activities
- 获取app的package和activity:adb shell;然后logcat | grep -i displayed
- 启动应用:adb shell am start -W -n "com.xueqiu.android/.view.WelcomeActivityAlias -S
Capability设置
- 文档地址:Desired Capabilities - Appium
-platformName:android 通常都是写android - deviceName:127.0.0.1:7555 这个通常是adb devices的名称
- appPackage:com.xueqiu.android 这个是app的package包名
- appActivity:.view.WelcomeActivityAlias 这个是app的activity名
- noReset:true, false 是否重置测试的环境(例如首次打开弹框,或者登陆信息)
- unicodeKeyboard:true, false 是否需要输入非英文之外的语言并在测试完成后重置输入法,比如输入中文
- dontStopAppOnReset:true, false 首次启动的时候,不停止app
- skipDeviceInitialization:true, false 跳过安装,权限设置等操作
测试用的apk
Android的基础知识
Android的布局
- Android是通过容器的布局属性来管理子控件的位置关系,布局过程就是把界面上的所有的控件,根据他们的间距的大小,摆放在正确的位置
- 线性布局:LinearLayout
- 相对布局:RelativeLayout
- 帧布局:FrameLayout
- 绝对布局:AbsoluteLayout
- 表格布局:TableLayout
- 网格布局:GirdLayout
- 约束布局:ConstraintLayout
Android四大组件
- activity:与用户交互的可视化界面
- service:实现程序后台运行的解决方案,比如qq音乐的音乐在后台运行,没有界面
- content provide: 内容提供者,提供程序所需要的数据,比如?提供数据库?
- broadcast receiver:广播接收器,监听外部事件的到来(比如来电)
Android常用的控件:
- TextView:文本控件
- EditText:可编辑文本控件
- Button:按钮
- ImageButton:图标按钮
- ToggleButton:开关按钮
- ImageView:图片控件
- CheckBox:复选框控件
- RadioButton:单选框控件
控件知识
- dom:Document Object Model 文档对象模型
- dom应用:最早应用于html和js的交互,用户表示界的控件层级,界面的结构化描述,常见的格式为html、xml。核心元素为节点和属性
- xpath:xml路径语言,用于xml中的节点定位
- Android的应用层级结构是定制的xml
- app source类似于dom,表示app的层级,表示界面里面所有的控件数的结构
- 每个控件都有它的属性(resourceid、xpath、aid),没有css属性.