python 移动测试之Appium环境搭建及简单应用

本文详细介绍了如何进行Python环境下的Appium配置,包括安装Java SDK、Android SDK,设置环境变量,以及虚拟机的安装。接着讲解了adb的使用,如设备管理、文件传输、软件安装卸载等基本操作。还深入到Appium的使用,包括启动应用、关闭应用、安装卸载应用等,并探讨了模拟手势如滚动、拖拽等高级操作。最后通过具体案例展示了移动测试中的综合应用场景。
摘要由CSDN通过智能技术生成

移动测试

1.移动测试介绍

  • 定义

    测试手机程序

  • 测试内容

    • 功能测试:查看功能是否正常
    • 安装卸载测试
    • 升级测试
    • 兼容性测试
      • Android系统版本
      • 厂商二次开发版本
      • 不同的分辨率
      • 不同的网络
    • 网络切换、中断测试
    • 使用中来电话、短信
    • 横竖屏切换
    • 健壮性:耗电量、流量消耗、崩溃回复

2.环境搭建

  • java sdk

    • 安装jdk
    • 配置JAVA_HOME和PATH
      在这里插入图片描述
  • Android SDK:

  • 虚拟机安装

    • 下载夜神模拟器

      默认安装到C盘,安装好后可以将整个文件夹剪切到D:\software\app_test目录下,这样便于管理。需要将夜神模拟器中的adb.exe和nox_adb.exe用platform-tools目录下的adb.exe替换。
      在这里插入图片描述

      • 直接用platform-tools文件夹里面的adb.exe替换adb.exe
      • 将platform-tools目录下的adb.exe复制到桌面,重命名为nox_adb.exe,替换夜神模拟器文件夹bin目录中的nox_adb.exe
  • 下载并安装Appium

在这里插入图片描述
在这里插入图片描述

3.adb的使用

  • 定义:db的全称为Android Debug Bridge,就是起到调试桥的作用。既包含ADB服务,也包含了与服务对应的Client。ADB是一个Server-Client程序,其中客户端是用来操作的电脑,服务端是android设备。

  • adb是android sdk里的一个工具,可以用来直接操作管理android模拟器或真实的android设备,它的主要功能有:

  • 运行设备的shell(命令行)

  • 管理模拟器或设备的端口映射

  • 计算机和设备之间的文件传输

  • 将本地apk软件安装至模拟器或android设备

  • 常用命令

    • 关闭及开启服务
    adb kill-server
      
    adb start-server
    
    • 查看设备
    adb devices
    

    在这里插入图片描述

    • 进入手机终端
     adb shell
    

    在这里插入图片描述

    • 获取信息
    adb shell getprop ro.build.version.release  获取手机android版本
    
    adb shell dumpsys window windows | findstr mFocusedApp 获取手机当前运行的程序和界面的名称
    

    在这里插入图片描述
    在这里插入图片描述

    • 文件传输
    adb push 电脑上的文件 手机上的位置
    
    adb pull 手机上的文件 电脑上的位置
    
    • 软件安装卸载
    adb install 电脑上的apk文件路径 安装应用
    
    adb uninstall 应用的包名
    
    • 获取其他信息
    adb shell am start -W 包名/.启动名
    
     adb shell am start -W com.android.settings/.Settings
    

    在这里插入图片描述
    运行上面这条命令,会打开设置页面。
    在这里插入图片描述

4.入门案例

"""
入门案例
1.自动化测试工具
选取Appium---支持的语言多、支持的平台多
坏境搭建:
    1.安装appium的程序
    2.在puthon中安装Appium-Python-Client
    pip install Appium-Python-Client
"""

# 1.连接设备
# 组装一个字典,注明平台、系统版本、名称
# 注明要打开的应用和界面的名称
import time

from appium import webdriver

# server 启动参数
desired_caps = {
   }
# 1.安卓系统
desired_caps['platformName'] = 'Android'
# 2.系统的版本号
desired_caps['platformVersion'] = '7.1'
# 3.手机名称,可通过命令:adb devices获取
desired_caps['deviceName'] = '127.0.0.1:62001'
# 4.应用程序的包名,也是app的包名,在手机中,包名是app的唯一标识
# 获取手机当前运行的程序和界面的名称
# adb shell dumpsys window windows | findstr mFocusedApp
desired_caps['appPackage'] = 'com.android.settings'
# 5.当前app里面的界面内容
desired_caps['appActivity'] = '.Settings'

# 从appium库里面导入driver对象
# driver = webdriver.Remomte('appium程序的地址','一个字典,要获取设置的要求')
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
# 2.执行操作
# driver.xxx
# element = driver.find_element_by_xx()
# element.xxx
# 打开设置页面,5秒后关闭
time.sleep(5)
# 3.退出
# 退出app包
driver.close_app()
# 关闭连接对象
driver.quit()

在这里插入图片描述

5.基础操作

  • 基础API

    • driver
      • close_app()–>关闭打开的应用
      • quit()–>断开连接
      • install_app(‘apk在电脑的绝对路径’)–>安装应用
      • remove_app(‘应用的包名’)–>卸载应用
      • is_app_installed(‘应用的包名’)–>判断应用是否安装
      • push_file(目标位置,base64编码的内容)
      • pull_file(来源位置)–>返回值是base64编码的内容
      • page_source–>获取界面xml源码
      • find_element()–>可根据ID/NAME/CLASS_NAME/CSS_SELECTOR/TAG_NAME等查找元素
      • find_elements()–>可根据ID/NAME/CLASS_NAME/CSS_SELECTOR/TAG_NAME等查找元素
      • current_package–>获取当前操作的应用的包名
      • current_activity–>获取当前操作的界面的名称
    • element
      • text–>获取元素文本内容
      • click()–>点击元素对应位置
      • get_attribute(属性名称)–>获取属性值

    基础操作之app安装与卸载:

    # 1.连接设备
    # 组装一个字典,注明平台、系统版本、名称
    # 注明要打开的应用和界面的名称
    import time
    
    from appium import webdriver
    
    # server 启动参数
    desired_caps = {
         }
    # 1.安卓系统
    desired_caps['platformName'] = 'Android'
    # 2.系统的版本号
    desired_caps['platformVersion'] = '7.1'
    # 3.手机名称,可通过命令:adb devices获取
    desired_caps['deviceName'] = '127.0.0.1:62001'
    
    # 从appium库里面导入driver对象
    # driver = webdriver.Remomte('appium程序的地址','一个字典,要获取设置的要求')
    driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
    # 2.执行操作
    # 安装app应用,如哔哩哔哩(32位),apk路径使用绝对路径
    # driver.install_app('D:\\software\\iBiliPlayer-bili.apk')
    # 打开哔哩哔哩,获取应用信息--包名等
    # adb shell dumpsys window windows | findstr mFocusedApp
    #   mFocusedApp=AppWindowToken{5787627 token=Token{8867341 ActivityRecord{d48ca28 u0 tv.danmaku.bili/.MainActivityV2 t18}}}
    # app卸载
    # driver.remove_app('tv.danmaku.bili')
    # 判断应用是否已安装
    if driver.is_app_installed('tv.danmaku.bili'):
        # 存在则卸载应用
        driver.remove_app('tv.danmaku.bili')
    else:
        # 不存在则安装
        driver.inst
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦里逆天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值