【App自动化测试】(三)使用Appium进行自动化用例录制

本文介绍如何使用AppiumInspector工具进行移动应用自动化测试,包括获取应用信息、配置测试环境及录制测试脚本等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言
本文为在霍格沃兹测试开发学社中学习到的一些技术写出来分享给大家,希望有志同道合的小伙伴可以一起交流技术,一起进步~ 😘


⁉️ 提醒:
appium-desktop 版本>1.22后,appium inspctor和appium-desktop 分离,需要单独下载安装并进行相关配置。

appium-inspector 下载地址:https://github.com/appium/appium-inspector/releases

appium-inspector 安装教程:https://blog.youkuaiyun.com/delia_1/article/details/122247259

1. Appium Inspctor 功能

  1. UI 分析
  2. 录制用例
  3. 元素查找测试
  4. Attcah 已有的 session
  5. 云测试

2. Appium inspector 页面结构

在这里插入图片描述
功能键说明(与图中标记序号匹配):

  1. Native App Mode:原生应用模式
  2. Web/Hybrid App Mode:网页/混合应用模式
  3. SelectElements:选中元素,查看层级和属性
  4. Swipe By Coordinates:通过坐标点滑动
  5. Tap By Coordinates:通过坐标点点击
  6. Back:返回
  7. Refresh Source & Screenshot:刷新页面
  8. StartRecording:开始录制脚本
  9. Search for element:搜索元素
  10. Quit Session & Close Inspector:退出当前 Session

3. 使用Appium Inspctor 进行用例录制

3.1 获取 app 的信息

  1. 两种方法获取app入口:
  • 方法一:通过 logcat 日志获取
#mac/Linux:  
adb logcat ActivityManager:I | grep "cmp"

#Windows:
adb logcat ActivityManager:I | findstr "cmp" 

#先执行命令,后启动目标应用

示例1:Windows系统下获取Api Demos的app入口
在这里插入图片描述

  • 方法二:通过 aapt 获取
#mac/Linux: 
aapt dump badging 安装包路径  | grep launchable-activity

#Windows: 
aapt dump badging 安装包路径  | findstr launchable-activity

示例2:Windows系统下查看 Api Demos的app入口
在这里插入图片描述
2. App启动应用命令:

adb shell am start -W -n <package-name>/<activity-name> -S

3.2 配置待测应用

在这里插入图片描述

  • platformName:平台,Android/iOS

  • deviceName:设备名

    • 使用命令 adb devices 可以获取到设备名称
      在这里插入图片描述
  • appPackage:应用的包名

  • appActivity:应用的页面名 Activity

  • noReset: 防止清空缓存信息

3.3 使用Appium Inspector进行自动化脚本录制

3.3.1 操作步骤

在这里插入图片描述

  1. 下载官方 Demo apk(https://github.com/appium-boneyard/sample-code

  2. 安装 API Demo.apk

  3. 录制用例:

    1. 待测应用配置好后,使用Appium Inspector连接移动端设备
    2. 连接成功后,点击录制按钮(图中1标记的按钮)
    3. 在Appium Inspector中,选中 【OS】元素,点击Tap按钮,进行点击操作,进入下个界面
    4. 选中【Morse Code】元素,点击Tap按钮,进行点击操作,进入下一个界面
    5. 选中输入框,点击Send Keys按钮,输入内容【测试人】
    6. 点击Appium Inspector上的Back按钮,返回上一个页面
    7. 再进行返回上一个页面的操作
    8. 最后返回到app首页

3.3.2 自动化测试用例结构分析

3.3.2.1 Appium Inspector生成用例脚本
el1 = driver.find_element(by=AppiumBy.ACCESSIBILITY_ID, value="OS")
el1.click()
el2 = driver.find_element(by=AppiumBy.ACCESSIBILITY_ID, value="Morse Code")
el2.click()
el3 = driver.find_element(by=AppiumBy.ID, value="io.appium.android.apis:id/text")
el3.send_keys("测试人")
driver.back()
driver.back()
driver.back()
3.3.2.2 对Appium Inspector生成用例脚本进行优化
  1. 添加 capability 信息
  2. 初始化webdriver,添加setupteardown
  3. 添加隐式等待和noReset属性增强用例稳定性
  4. 添加断言

注意

  • selenium 版本建议 3.141.0
  • appium-python-client 版本建议 1.2.0
3.3.2.3 完整代码
from appium import webdriver
from appium.webdriver.common.appiumby import AppiumBy

class TestXueQiu:
    def setup(self):
        # 创建一个字典
        desire_cap = {}
        # 平台
        desire_cap['platform'] = 'Android'
        # 设备名
        desire_cap['deviceName'] = '127.0.0.1:7555'
        # app 包名
        desire_cap['appPackage'] = 'io.appium.android.apis'
        # app 页面名
        desire_cap['appActivity'] = '.ApiDemos'
        desire_cap['noReset'] = 'true'
        self.driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desire_cap)
        self.driver.implicitly_wait(10)

    def teardown(self):
        # 回收session
        self.driver.quit()

    def test_api_demo(self):
        """
        1、打开 API demo apk
        2、点击 OS 控件
        3、点击 Morse Code 控件
        4、在搜索框中输入 测试人
        5、返回到第一页
        6、断言
        :return:
        """
        # 点击 OS 控件
        self.driver.find_element(AppiumBy.ACCESSIBILITY_ID,"OS").click()
        # 点击 Morse Code 控件
        self.driver.find_element(AppiumBy.ACCESSIBILITY_ID,"Morse Code").click()
        # 输入`测试人`
        el=self.driver.find_element(AppiumBy.ID,"io.appium.android.apis:id/text")
        el.clear()
        el.send_keys("测试人")
        # 返回到app首页
        self.driver.back()
        self.driver.back()
	self.driver.back()
        # 选择元素进行断言
        result = self.driver.find_element(AppiumBy.ACCESSIBILITY_ID,"Accessibility")
        print(result.text)
        # 断言
        assert result.text == "Accessibility"


文末说明:
接口测试中我们很容易混淆Session、cookie和token,你知道他们有什么区别吗?

快来跟我一起看,一篇文章让你了解三者的区别。😎
⬇⬇⬇⬇⬇⬇⬇
👍👍👍:接口测试经典面试题:Session、cookie、token有什么区别?

iTestin3.0.1版本: 简单.强大.专业。 iTestin 基于真实终端设备的脚本录制、回放,验证工具。友好、简便的操作界面,强大的脚本录制功能。适用于Android系统下的Phone和Pad。从简单到深入为Android应用程序测试. iTestin3.0.1实用功能概括: 控件识别与坐标录制脚本 支持脚本本地编辑功能 支持滑,长按等操作 支持账号及复杂文本的输入 支持断言、休眠、截等脚本操作 支持插入、删除、编辑操作 支持脚本在不同分辨率安卓终端上运行 支持脚本上传云端千款终端同时测试 WindowsXP及以上操作系统.运行畅通,挣脱环境束缚.保证系统兼容性. iTestin自动化测试工具特点:   1、全面的自动化测试   提供业界最全面的自动测试服务类型:兼容测试、性能测试、功能测试。真实记测试过程,返回测试结果。测试结果包括:安装时长、启动时长,CPU占用、内存占用、界面截图、Log日志,Bug原因及分析等。   2、支持基于Android的应用、手游的复杂脚本录制   全球首款支持Android系统的自动化脚本工具,采用黑盒测试,为移动开发者提供基于批量终端的功能测试、脚本录制回放,及测试记的功能。支持多功能点的应用、手游的脚本录制,支持长按、划、输入账号、密码等的深度遍历操作录制。   3、快速交付   支持记在移动终端设备上记操作行为;生成、编辑脚本文件;支持在本地设备上反复回放验证、运行,调试,并记回放结果。iTestin还支持将录制好的脚本上传至Testin真机云测试平台,在大批量终端上进行功能测试验证。   4、标准化报告   Testin为开发者提供最专业、最详细的测试报告,采用黑盒测试忠实记脚本在真机上的运行过程,自动生成幕截图和Log日志等,帮助开发者快速找到Bug原因。 iTestin自动化测试工具重点功能:   a、 连接和管理连接在PC上的终端设备,包括Phone和Pad。   b、支持在终端设备上记操作行为、自动生成幕截图、Log日志等,并可生成相应脚本上传至iTestin平台。   c、支持在终端设备上记操作行为、生成脚本文件。支持在终端设备上反复回放脚本进行本地验证并记回放结果。自动导出错误幕截图和Log日志等。   d、支持在PC上上传录制的脚本文件和应用包到Testin平台,在Testin云测终端云的其他终端上按脚本执行应用程序做功能测试。 主要升级内容: 版本号:3.0.1-beta 1、编辑脚本时,右键菜单增加“修改”功能,用户可直接修改延时时长 2、客户端界面底部增加“查看更新信息”功能,可以查看最新更新信息 3、完善控件录制功能,修复某些应用引导界面无法正常识别控件的问题 4、完善控件录制功能,使客户端画面与终端实际画面保存同步 5、完善控件回放功能,使回放结果检查更准确 6、优化提交脚本界面和云测试界面分别增加loading提示
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值