app自动化测试——自动化用例录制、用例结构分析

在这里插入图片描述


一、Appium Inspctor 功能介绍

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

二、Appium Inspctor 用法介绍

1、获取 app 的信息

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

2、配置待测应用

platformName:平台,Android/iOS
platformVerison:系统版本
deviceName:设备名
appPackage:应用的包名
appActivity:应用的页面名 Activity
noReset: 防止清空缓存信息

在这里插入图片描述

点击session进入Appium inspector 页面结构

3、Appium inspector 页面结构

在这里插入图片描述

4、功能键

SelectElements:选中元素,查看层级和属性
Swipe By Coordinates:通过坐标点滑动
Tap By Coordinates:通过坐标点点击
Back:返回
Refresh Source & Screenshot:刷新页面
StartRecording:开始录制脚本
Search for element:搜索元素
Copy XML Source to Clipboard:复制 xml 结构
Quit Session & Close Inspector:退出当前 Session

三、录制脚本

步骤

打开 API Demo 应用
点击 OS,进入下个界面
点击【Morse Code】
输入内容【ceshiren.com】
返回上一个页面
返回上一个页面
关闭应用

caps={}:创建一个字典,desirecapility
caps[‘platformName’]=‘Android’:指定系统名称
caps[“deviceName”] = “ApiDemos”:指定设备名称
caps[“appPackage”] = “io.appium.android.apis”:指定安卓包名和页面名
caps[“appActivity”] = “.ApiDemos”

创建driver,建立连接
driver = webdriver.Remote(“http://localhost:4723/wd/hub”, caps)

获取安卓包名和页面名
windows:adb logcat ActivityManager:I | findstr “cmp”

import time

from appium import webdriver
from appium.webdriver.common.appiumby import AppiumBy

class TestAppDemo:
    def setup(self):
        # 创建一个字典,desirecapility
        caps = {
    
    }
        # 系统
        caps["platformName"] = "Android"
        # 设备名称
        caps["deviceName"] = "ApiDemos"
        # 包安卓包名和页面名;获取
        # windows:adb logcat ActivityManager:I | findstr "cmp"
        caps["appPackage"] = "io.appium.android.apis"
        caps["appActivity"] = ".ApiDemos"
        #todo 保留登录信息
        caps["noReset"]="true"

        caps["ensureWebviewsHavePages"] = True
        # 创建driver,与appium server建立连接,返回一个session
        #todo driver变成self.driver由局部变量变成实例变量,然后就可以在其他的方法中引用这个变量了
        self.driver = webdriver.Remote("http://localhost:4723/wd/hub", caps)
        self.driver.implicitly_wait(5)

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

    def test_input(self):
        #el1 = self.driver.find_element_by_accessibility_id("OS")
        el1 = self.driver.find_element(AppiumBy.ACCESSIBILITY_ID,"OS")
        el1.click()
        el2 = self.driver.find_element(AppiumBy.ACCESSIBILITY_ID, "Morse Code")
        el2.click()
        el3 = self.driver.find_element(AppiumBy.ID, "android:id/action_bar")
        el3.click()
        el4 = self.driver.find_element(AppiumBy.ID, "io.appium.android.apis:id/text")
        #清除原有的内容
        el3.clear()
        el4.send_keys("ceshiren")
        el4.clear()
        #手动关闭应用
        time.sleep(5)
        #todo 启动应用,热启动,会进入到app的首页
        self.driver.launch_app()


        self.driver.back()
        time.sleep(2)
        self.driver.back()
        result=self.driver.find_element(AppiumBy.ACCESSIBILITY_ID,"Accessibility").text
        print(result)

注意:当adb连接设备时,出现“adb.exe: unknown command conncet”的解决方法

C:\Users\Lenovo>adb conncet 127.0.0.1:7555
adb.exe: unknown command conncet

先执行先adb kill-serve断开连接
然后使用adb connect 127.0.0.1:7555
再然后使用adb devices看是否连上设备了

猜你喜欢

转载自blog.csdn.net/YZL40514131/article/details/129632934