mac+appium+java+maven+testng app自动化

一:adb常用命令 (常规元素定位)

  adb devices检测设备

  adb shell 进入到手机的shell模式

  adb pull/push 和手机里面的文件进行交互

  adb install

  adb uninstall

  adb start-server

  adb kill-server

  adb shell dumpsys activity | find "mFocusedActivity"

  adb shell am start -n 包名/入口 (aapt dump badging)启动app

  adb shell pm list packages 显示当前系统里面所有应用程序包名

  adb shell pm clear 包名

  adb shell input tap 坐标 点击

二:Hybrid&webview 

  Hybrid混合应用程序,在应用程序中嵌入了webview,通过webview访问网页

  webview是一个基于webkit引擎,展现web页面的控件

  作用:显示和渲染洁面

     直接使用html(网络或者apk资源包assets中)作布局

     可和JavaScript交互调用

三:native app

  传统的原生app开发模式,android基于java语言,底层调用Goolge提供的Api,IOS基于Objective c或Swift,底层调用Apple官方提供的Api

  tips:1.在手机/模拟器中点击关于手机中的版本号5下,出来开发者选项

      2.在开发者选项中勾选上显示布局边界

      3.如果是html的界面,那界面不会有布局边界显示,如有则说明是native的界面 

四:web app

五:hybrid app

六:ActivityName&PackageName

  PackageName(包名) 

    应用的唯一身份标识,系统通过包名识别不同的应用,如两个相同包名的应用在按照时会提示覆盖

  ActivityName(类名)

    activity:android四大组件之一,就是一个界面,和用户进行交互,如桌面(Launcher),activity通过setContentView方法加载布局文件,使得布局文件能够显示在手机上

  tips:

    根据adb shell dumpsys activity | find  "mFocusedActivity"可以找到包名和前台正在运行的Activity

七:布局文件activity_main.xml

  

  命名空间android:用于android系统定义的一些属性

八:android布局类型

  框架布局(FrameLayout):所有控件都被放置在最左上的区域

               下一个子控件会重叠覆盖上一个子控件

  线性布局(LinearLayout):控件的排序方式:垂直/水平

  绝对布局(AbsoluteLayout):采用坐标轴的方式定位控件

                 左上角原点(0,0),往右x轴递增,往下y轴递增

  相对布局(RelativeLayout):根据参照物(某控件)的位置,来确定控件的位置

  表格布局(TableLayout):通过表格方式(行,列)布局控件位置

九:常见控件

  TextView :文本控件,展示文本/文字

  EditText:可编辑输入框,用于接受用户输入的数据

  Button:按钮,用户通过点击button触发一系列的事件

  CheckBox:复选/多选按钮

  ImageView:图片控件,用于显示图片

  ProgressBar:加载进度条,表示正在加载一些数据

  控件属性01

    index :索引

    text :文本描述,新版本需要使用:findElementByAndroidUIAutomator("newUiSelector().text(\"哈哈哈哈\")")

    resource-id : 控件资源的id,有的控件/布局可能没有

  控件属性02

    content-desc

    内容描述(为残疾人设置的属性,如使用talkback,会发出content-desc中描述信息声音)

      findElementByAndroidUIAutomator("newUiSelector().description(\"哈哈哈哈\")")

    bounds 控件/布局界限 [480 1179]描述控件/布局的起始坐标:x,y轴   [720 1280]描述控件/布局的终止坐标:x,y轴

十:appium启动日志

十一:项目创建

    maven项目构建  

    groupId:com.xxx

    

    添加依赖

    资源仓库:www.mvnrepository.com

    

    在src/text/java目录中创建一个包 com.xxx.xxx

    新建类 

    

   

 

     

十二:appium元素定位

  app自动化测试重点环节就是元素定位,只有准确定位对应元素我们才能对相应的元素进行操作,如点击,输入,滑动等等,appium提供了很多

  元素定位的api,like id,text,className

  id定位:一个页面如果有多个相同id,获取到的元素结果为一个集合,需要用List接受。

  

  

  

  

十三:手势操作

  上下左右滑屏

  放大缩小

  多点触摸 

  appium提供的手势API

  swipe --滑动

  zoom --放大

  pinch --缩小

  tap --点点

     

         

    

  

    

 

 

  

 

 

posted @ 2019-05-14 00:32  Lucky-qq  阅读(41)  评论(0编辑  收藏  举报