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...  执行用例

posted @ 2020-03-30 15:41  宁静~朝夕  阅读(486)  评论(0)    收藏  举报