【APP自动化测试】Python + Appium + 模拟器 +UiAutomatorViewer 实现APP自动化测试

一、简介

Appium是一个开源的自动化测试工具,支持iOS和安卓平台上的原生的,基于移动浏览器的,混合的应用。

二、安装准备

2.1、安装python Appium第三方库

pip install Appium-Python-Client

2.2、安装java jdk

安装地址

【APP自动化测试】Python + Appium + 模拟器 +UiAutomatorViewer 实现APP自动化测试_第1张图片

2.3、安装android-studio(主要需要使用android sdk)

android-studio下载地址

替换uiautomatorviewer.jar有定位xpath功能的jar包
uiautomatorviewer.jar下载地址

放在这个路径下:(备份原文件替换)
D:\Program Files (x86)\Android\android-studio\sdk\tools\lib

2.3.1、打开UiAutomatorViewer ,用于元素定位

D:\Program Files (x86)\Android\android-studio\sdk\tools
双击:uiautomatorviewer.bat
在这里插入图片描述
【APP自动化测试】Python + Appium + 模拟器 +UiAutomatorViewer 实现APP自动化测试_第2张图片

2.4、安装Appium

下载地址
【APP自动化测试】Python + Appium + 模拟器 +UiAutomatorViewer 实现APP自动化测试_第3张图片
【APP自动化测试】Python + Appium + 模拟器 +UiAutomatorViewer 实现APP自动化测试_第4张图片

2.4、安装Nox模拟器

下载地址

四、启动服务

4.1、启动Nox模拟器

在这里插入图片描述
启动后把要测试的app的apk文件拖入模拟器内,这里用的是计算器
【APP自动化测试】Python + Appium + 模拟器 +UiAutomatorViewer 实现APP自动化测试_第5张图片

4.2、启动APPium

【APP自动化测试】Python + Appium + 模拟器 +UiAutomatorViewer 实现APP自动化测试_第6张图片
【APP自动化测试】Python + Appium + 模拟器 +UiAutomatorViewer 实现APP自动化测试_第7张图片

4.2、连接Nox模拟器

打开cmd,进入模拟器Nox的安装路径

在模拟器bin目录打开控制台,执行adb.exe connect 127.0.0.1:62001,然后执行adb devices,看到如下信息就表

adb.exe connect 127.0.0.1:62001
adb devices

aapt dump  badging  XXX   #app的apk文件路径
#举例
aapt dump  badging  F:\my_job\github_learn\apptest\测试apk\com.youdao.calculator-2.0.0.apk #app的apk文件路径

在这里插入图片描述
在这里插入图片描述
【APP自动化测试】Python + Appium + 模拟器 +UiAutomatorViewer 实现APP自动化测试_第8张图片

4.2、同步模拟器中的app界面,定位元素

【APP自动化测试】Python + Appium + 模拟器 +UiAutomatorViewer 实现APP自动化测试_第9张图片

五、执行自动化用例

test.py

import time
import unittest

from appium import webdriver


class MyTests(unittest.TestCase):
    def setUp(self):
        desired_caps = {'platformName': 'Android', # 平台名称
                        'platformVersion': '7.1.2',  # 系统版本号
                        'deviceName': '127.0.0.1:62001',  # 设备名称。如果是真机,在'设置->关于手机->设备名称'里查看
                        'appPackage': 'com.youdao.calculator',  # apk的包名
                        'appActivity': 'com.youdao.calculator.activities.MainActivity'  # activity 名称
                        }
        self.driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)  # 连接Appium
        self.driver.implicitly_wait(10)

    def test_calculator(self, t=500, n=4):
        """计算器测试"""
        time.sleep(3)
        print("=======0")
        window = self.driver.get_window_size()
        x0 = window['width'] * 0.8  # 起始x坐标
        x1 = window['width'] * 0.2  # 终止x坐标
        y = window['height'] * 0.5  # y坐标
        for i in range(n):
            self.driver.swipe(x0, y, x1, y, t)
            time.sleep(1)
        self.driver.find_element_by_id('com.youdao.calculator:id/guide_button').click()
        print("=======1")
        
        for i in range(5):
            print("i:",i)
            self.driver.find_element_by_id('com.youdao.calculator:id/iv_guide_img').click()
            time.sleep(1)
        print("=======2")
        btn_xpath = '//android.widget.GridView/android.widget.FrameLayout[{0}]/android.widget.FrameLayout'
        self.driver.find_element_by_xpath(btn_xpath.format(13)).click()
        self.driver.find_element_by_xpath(btn_xpath.format(20)).click()
        self.driver.find_element_by_xpath(btn_xpath.format(12)).click()
        time.sleep(5)

    def tearDown(self):
        self.driver.quit()

run.py

import os
import time
import unittest

test_dir = './testcase'
discover = unittest.defaultTestLoader.discover(start_dir='./testcase', pattern="test*.py")

if __name__ == "__main__":
    runner = unittest.TextTestRunner(verbosity=2)
    runner.run(discover)

【APP自动化测试】Python + Appium + 模拟器 +UiAutomatorViewer 实现APP自动化测试_第10张图片

【APP自动化测试】Python + Appium + 模拟器 +UiAutomatorViewer 实现APP自动化测试_第11张图片

demo代码下载地址

你可能感兴趣的:(#,APP测试,Appium,app测试)