二、Appium用例录制

目录

  • android自动化前提依赖
  • Appium Desktop功能介绍
  • 利用Appium Desktop 生成用例模板
    • 获取app的信息
    • 配置待测应用的信息( desire capability)
    • 导出python语言的用例
    • 添加隐式等待增强用例稳定性

android自动化前提依赖

  • adb(Android Debug Bridge)工具,在sdk中提供,需要配置好sdk环境变量
  • 模拟器or真机
    • 模拟器:网易mumu 、genimotion或者sdk自带模拟器。
    • 真机需要root权限
  • Appium Desktop: 入门学习工具

Appium Desktop功能介绍

  • UI分析
  • 录制用例
  • 元素查找测试
  • Attach已有的session
  • 云测试

Appium Desktop工具操作

  • 默认监听本地4723端口


    image.png
  • 启动服务后的界面
    • Start Inspector Session:启动server界面端

      {
      "platformName": "iOS",
      "platformVersion": "11.0",
      "deviceName": "iPhone 7",
      "automationName": "XCUITest",
      "app": "/path/to/my.app
      }
      
      • appActivity:应用的一个活动页代表一个appActivity
      • appPackage:应用的包名


        image.png

        image.png

配置desired capabilities

  • platformName:Android
  • deviceName:
    • 连接设备:terminal中输入adb connect 设备地址:端口号
    • 获取deviceName,terminal中输入adb devices,会展示已连接的设备列表
C:\Users\insan>adb connect 127.0.0.1:7555
connected to 127.0.0.1:7555

C:\Users\insan>adb devices
List of devices attached
127.0.0.1:7555  device
  • appPackage:
    • 获取appPackage:
      • Linux或Mac上:adb logcat | grep -i displayed
      • Windows上:adb logcat | findstr -i displayed
      • 输入命令后实时打印日志,比如打开雪球股票,就会打印如下信息
C:\Users\insan>adb logcat | findstr -i displayed
04-16 20:45:55.327   681   718 I ActivityManager: Displayed com.mumu.launcher/.Launcher: +1s279ms
04-16 20:57:24.446   681   718 I ActivityManager: Displayed com.xueqiu.android/.view.WelcomeActivityAlias: +3s679ms
04-16 20:57:28.820   681   718 I ActivityManager: Displayed com.xueqiu.android/.main.view.MainActivity: +3s471ms

com.xueqiu.android/.view.WelcomeActivityAlias/前面的为appPackage,/后面的appActivity,在Appium Desktop中的操作均会同步到设备端。

image.png
image.png

image.png

image.png

image.png

用例录制

  • 点击录制按钮


    image.png
  • 进行录制


    image.png

    image.png

    image.png
  • 复制代码带pycharm
from appium import webdriver

desire_caps = {
    "platformName": "Android",
    "deviceName": "127.0.0.1:7555",
    "appPackage": "com.xueqiu.android",
    "appActivity": ".view.WelcomeActivityAlias",
    "noRest": True  # 不对应用进行重置,保留app之前的设置

}
"""
appium默认监听本地4723端口
"""
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desire_caps)
driver.implicitly_wait(10)

el1 = driver.find_element_by_id("com.xueqiu.android:id/home_search")
el1.click()
el2 = driver.find_element_by_id("com.xueqiu.android:id/search_input_text")
el2.send_keys("alibaba")
el3 = driver.find_element_by_xpath("/hierarchy/android.widget.FrameLayout/android.widget.FrameLayout/"
                                   "android.widget.LinearLayout/android.widget.FrameLayout/"
                                   "android.view.ViewGroup/android.widget.FrameLayout/android"
                                   ".widget.LinearLayout/android.widget.RelativeLayout/android."
                                   "widget.FrameLayout/android.widget.LinearLayout/androidx."
                                   "recyclerview.widget.RecyclerView/android.widget.Relative"
                                   "Layout[1]/android.widget.LinearLayout/android.widget.TextView[1]")
el3.click()

获取app的信息

  • app信息
    • 获取当前界面元素: adb shell dumpsys activity top(推荐)(重点)
    • 获取任务列表: adb shell dumpsys activity activities
  • app入口
    • adb logcat l grep -i displayed(推荐)(重点);Windows中将 grep 改为 findstr
    • aapt dump badging mobike.apk l grep launchable-activity;Windows中将 grep 改为 findstr
    • apkanalyzer最新版本的sdk中才有
  • 启动应用
    • adb shell am start -W -n com.xueqiu.android/.view.WelcomeActivityAlias -S (重点)
      image.png

下一节:元素定位方法与隐式等待,包括id、aid定位与隐式等待结合打造稳定用例。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容