当前位置: 首页 > news >正文

移动测试相关

一、环境搭建

准备工作:

        (python、pycharm安装配置好)

        1、Java SDK 安装配置

Java Downloads | Oracle

                下载安装后配置系统环境变量:JAVA_HOME(jdk根目录路径)和path(jdk根目录下的bin目录路径)

        2、Android SDK下载安装(也可以通过Android Studio下载)

AndroidSDK下载及安装 - 陈晓猛 - 博客园

 Android 开发者  |  Android Developers

                下载安装后配置系统环境变量:ANDROID_HOME(SDK根目录路径)和path(platform-tools目录和tools目录两个路径)

        3、模拟器安装(夜神模拟器、mumu等)

                 用AndroidSDK中platform-tools目录下的adb.exe文件替换模拟器bin目录下的adb.exe和nox_adb.exe文件(目的是使AndroidSDK中的adb与模拟器中的adb文件版本相同)

        4、cmd中:pip install Appium-Python-Client(appium客户端)

        5、下载安装appium服务端:Appium: Mobile App Automation Made Awesome.

                安装后检查EditConfigurations中的环境变量是否跟本机配置的系统变量一致

 二、ADB的使用(Android Debug Bridge 安卓调试桥梁)

作用:通过命令去操作手机

服务(发现代码连不上手机时)

adb kill-serveradb start-server

查看设备

adb devices

进入手机终端

adb shell

(进入终端后根据Linux命令操作)

获取手机安卓版本

adb shell getprop ro.build.version.release

获取当前运行的程序和界面的名称

adb shell dumpsys window windows | findstr mFocusedApp

文件传输

adb push 电脑上的文件 手机上的位置 
adb pull 手机上的文件 电脑上的位置

(模拟器上可以直接拖拉文件实现上传)

软件 安装&卸载

adb install  电脑上的apk文件的路径
adb uninstall 应用的包名

获取其他信息

adb shell am start -w  包名\.启动名

完整实例

(appium服务和夜神模拟器处于开启状态)

 

import time
from appium import webdriverdesired_caps={}#连接移动设备必须的参数
# 当前要测试的设备的名称(可能开了多个模拟器或者多台手机)
desired_caps['deviceName']='127.0.0.1:62001'#cmd中adb devices
# 操作系统
desired_caps['platformName']='Android'
# 操作系统的版本
desired_caps['platformVersion']='7.1'#模拟器中查看#cmd中adb shell dumpsys window windows | findstr mFocusedApp 获取包名和页面地址# 需要启动的APP的名称(Android系统为APP包名)
desired_caps['appPackage']='com.android.settings'
# 要启动的APP的页面地址
desired_caps['appActivity']='.Settings'#远程调用手机,command_executor调用的地址(从appium服务器获得),desired_capabilities字典
driver=webdriver.Remote(command_executor='http://127.0.0.1:4723/wd/hub',desired_capabilities=desired_caps)time.sleep(5)driver.close_app()#关闭app
driver.quit()#释放资源

http://www.lryc.cn/news/3616.html

相关文章:

  • SIGIR22:User-controllable Recommendation Against Filter Bubbles
  • Python中的进程线程
  • python(8):使用conda update更新conda后,anaconda所有环境崩溃----问题没有解决,不要轻易更新conda
  • c++11 标准模板(STL)(std::multimap)(四)
  • 乐观锁及悲观锁
  • 常见的锁策略
  • springboot学习(八十) springboot中使用Log4j2记录分布式链路日志
  • 10种ADC软件滤波方法及程序
  • 第五章:Windows server加域
  • Elasticsearch:获取 nested 类型数组中的所有元素
  • English Learning - Day53 作业打卡 2023.2.7 周二
  • SpringMVC--注解配置SpringMVC、SpringMVC执行流程
  • JavaScript中数组常用的方法
  • ModuleNotFoundError: No module named ‘pip‘
  • ROS2 入门应用 发布和订阅(C++)
  • XSS漏洞,通过XSS实现网页挂马
  • 家政服务小程序实战教程09-图文卡片
  • 国内唯一一部在CentOS下正确编译安装和使用RediSearch的教程
  • 前端对于深拷贝和浅拷贝的应用和思考
  • Java基础常见面试题(三)
  • C++设计模式(13)——装饰模式
  • ESP-01S通过AT指令上报数据到阿里云物模型
  • 【强化学习】马尔可夫决策过程MDP
  • 刘润:五维思考,让你站得更高、看得更远
  • 从运维角度看微服务 k8s部署微服务【偏理论】【AL】
  • 专题 | 防抖和节流
  • C++入门:重载运算符和重载函数
  • conda 新建虚拟环境 等等
  • 【C++:STL之栈和队列 | 模拟实现 | 优先级队列 】
  • 基于SpringBoot+Vue的疫苗预约管理系统(Java项目)