app自动化5-AppiumServer
0. Android SDK的安装:
1> 打开连接:https://www.androiddevtools.cn/
2> 进入页面后点击【Android SDK 工具】按钮,在弹出的选择框内点击【SDK Tools】按钮,然后界面会自动跳转到SDK 的下载界面,选择适合自己的版本进行下载
3> 在页面继续下载 platform-tools工具
1. Appium Server环境安装:
1> 安装Node.js,推荐LTS版本:
a> node.js版本>=8,但不要用最高版本,建议使用node-v10.19.0-x64.msi版本
安装包连接:https://nodejs.org/dist/latest-v8.x/
b> 配置node.js环境变量

2> 安装Appium:
a> 淘宝 cnpm(最稳定的方法)
npm install -g cnpm --registry=https://registry.npm.taobao.org
PS: 注意: cnpm版本>=6
cnpm install -g appium
b> 相关链接:https://shimo.im/docs/HCt3J9DgHwCQ8HdD/
c> 查看appium是否安装成功:

2. 隐式等待与显式等待对比:
1> 隐式等待:服务端(appium)会在特定的超时时间内重试多次寻找控件,直到最大超时时间
2> 显式等待:在客户端(用例端)根据更灵活的条件循环等待条件满足
3. 基于appium server来进行app自动化测试,启动appium server的命令: appium

4. 基于pycharm执行脚本

5. 可以看到appium server打印了很多执行过程中的日志

6. 控制基础知识:
1> DOM:Document Object Model 文档对象模型
2> DOM应用:最早应用于HTML和JavaScript的交互,界面的结构化描述,常见格式为html,xml
3> 核心元素为节点和属性
4> XPath:XML路径语言,用于XML中的节点定位
5> 关键属性(Attribute):resource-id content-desc text clickable bounds
7. app控制定位手段:
1> id
2> Accessibility ID:content-desc
3> XPath
PS: 定位查找元素的API说明: http://appium.io/docs/en/commands/element/find-element/
8. 测试步骤三要素: 定位,交互,断言
9. 自动化常用动作:click sendKeys swipe touch action
1> 初使化一个session:app的初始化和启动


2> 元素的一些操作:

3> 触摸的一些操作:

10. 长按/滑动等TouchAction:
1> TouchAction类相关的API是一个链式调用: TouchAction(driver).long_press().move_to().release().perform()
2> 相关API如下:

11. 滑动屏幕:driver.swipe(),通过使用相对坐标(x和y轴的百分比)进行使用
12. 测试用例结构改造:按前置,测试用例,后置来组成用例,用例脚本要以test开头命令文件,才能被pytest框架识别出用例
1 from appium import webdriver 2 3 class TestDemo(): 4 def setup(self): 5 #参数设置 6 caps = {} 7 caps["platformName"] = "android" 8 caps["deviceName"] = "qiucaixia" 9 caps["appPackage"] = "com.xueqiu.android" 10 caps["appActivity"] = ".view.WelcomeActivityAlias" 11 caps["autoGrantPermissions"] = "true" 12 13 self.driver = webdriver.Remote("http://localhost:4723/wd/hub", caps) 14 self.driver.implicitly_wait(10) #隐式等待 15 16 def test_demo(self): 17 el1 = self.driver.find_element_by_id("com.xueqiu.android:id/home_search") 18 el1.click() #点击搜索栏 19 20 el2 = self.driver.find_element_by_id("com.xueqiu.android:id/search_input_text") 21 el2.send_keys("pdd") #输入搜索内容 22 23 def teardown(self): 24 self.driver.quit()
1> 执行用例前,pycharm要修改一个配置,Python Integrated Tools的修改为 py.test执行

2> 执行用例时,右击 选择 py.test in... 执行用例


浙公网安备 33010602011771号