Appium移动端自动化测试-(Java)

目录

1、Android 环境配置,JDK+SDK+Android 模拟器配置
2、ADB调试工具;
3、Appium环境搭建
4、第一个HelloWorld程序;
5、Appium基础操作API
6、UIAutomatorView
7、元素定位操作API
8、元素等待
9、元素操作API
10、滑动和拖拽事件
11、高级手势TouchAction
12、手机操作API

环境搭建

JAVA 环境
AndroidASDK 环境

Android SDK 下载地址: https://www.androiddevtools.cn/
Android SDK Platform Tools 下载地址: https://developer.android.google.cn/studio/releases/platform-tools
Appium-Desktop 下载地址: https://github.com/appium/appium-desktop/releases
Genymotion 下载地址: https://www.genymotion.com/download/
https://developer.android.com/tools

ADB调试工具

adb构成

  • client端,在电脑上,负责发送adb命令
  • daemon守护进程,在手机上,负责接收和执行adb命令
  • server端,在电脑上,负责管理client和daemon之间的通信

adb工作原理

  1. client端将命令发送给server端
  2. server端会将命令发送给daemon端
  3. daemon端进行执行
  4. 将执行结果,返回给server端
  5. server端将结果再返回给client端

adb常用命令

查看设备连接情况
1. adb devices
==========
C:\Users\v_user>adb devices
List of devices attached
9889d5385354313342      device
==========
2. 抓日志
adb logcat -v time>C:\Users\v_user\Desktop\temp\a.txt

3. 获取包名和界面名
(windows)
adb shell dumpsys window windows | findstr mFocusedApp
(Mac/Linux)
adb shell dumpsys window windows | grep mFocusedApp

4.

电脑连接多个设备跟模拟器使用adb

1. adb devices 查看设备连接情况
2. adb -s 设备连接编号名 接adc动作指令
实例
C:\Users\v_user>adb devices
List of devices attached
emulator-5554   device
9889d5385354313342      device

C:\Users\v_user>adb -s 9889d5385354313342 shell dumpsys window windows | findstr mFocusedApp
  mFocusedApp=AppWindowToken{
   357f881 token=Token{
   2841c68 ActivityRecord{
   7d2538b u0 com.android.settings/.Settings$ConnectionsSettingsActivity t937}}}

C:\Users\v_user>adb -s 9889d5385354313342 shell am start -W com.android.settings/.Settings$ConnectionsSettingsActivity
Starting: Intent {
    act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.android.settings/.Settings }
Status: ok
Activity: com.android.settings/.Settings
ThisTime: 523
TotalTime: 523
WaitTime: 556
Complete

包名与界面名的概念

  • 包名(Package)
    包名是决定程序唯一性的身份ID(不是应用的名字),它对应着应用程序。
  • 界面名(activity)
    界面名,也可以叫做启动名,对应着应用程序的某个界面。

如何获取包名和界面名

Mac/Linux

adb she1l dumpsys window | grep mFocusedApp

windows

adb shell dumpsys window | findstr mFocusedApp

应用场景:在指定打开预期应用的预期界面是会用到。

举例
模拟器已被adb成功识别并连接,已打开安卓应用,再获取当前应用界面的包名和界面用。

C:\Users\v_user>adb devices
adb server is out of date.  killing...
* daemon started successfully *
List of devices attached
emulator-5554   device

C:\Users\v_user>adb shell dumpsys window | findstr mFocusedApp
mFocusedApp=Token{
   fd6de03 ActivityRecord{
   434feb2 u0 com.android.settings/.Settings t3}}
mFocusedApp=AppWindowToken{
   f73a180 token=Token{
   fd6de03 ActivityRecord{
   434feb2 u0 com.android.settings/.Settings t3}}}

C:\Users\v_user>adb shell dumpsys window | findstr mFocusedApp
mFocusedApp=Token{
   ffdb429 ActivityRecord{
   f925db0 u0 com.android.gallery3d/.app.GalleryActivity t4}}
mFocusedApp=AppWindowToken{
   ca063ae token=Token{
   ffdb429 ActivityRecord{
   f925db0 u0 com.android.gallery3d/.app.GalleryActivity t4}}}

C:\Users\v_user>adb shell dumpsys window | findstr mFocusedApp
mFocusedApp=Token{
   1b55a2a ActivityRecord{
   722c715 u0 com.android.settings/.Settings$PowerUsageSummaryActivity t3}}
mFocusedApp=AppWindowToken{
   22c601b token=Token{
   1b55a2a ActivityRecord{
   722c715 u0 com.android.settings/.Settings$PowerUsageSummaryActivity t3}}}

包名为:com.android.settings
       com.android.gallery3d
界面名为:.Settings
         .app.GalleryActivity
         .Settings$PowerUsageSummaryActivity

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

文件传输

发送文件到手机

应用场景
将手机需要的数据(数据库文件)在电脑上调整好,直接发送给手机;
命令各式
adb push 电脑的文件路径 手机的文件路径
实例
将桌面的Test.txt发送到手机的sd卡的fangyizeTest目录下
adb push C:\Users\saifang\Desktop\temp\Test.txt /sdcard/fangyizeTest/

从手机拉取文件

应用场景
将手机产生的文件(数据库文件,日志文件)拉取到电脑中
命令格式
adb pull 手机文件路径 电脑文件路径
实例
将手机的sd卡的Test.txt拉取到桌面的temp目录下并命名为AAA.txt
adb pull /sdcard/fangyizeTest/Test.txt C:\Users\v_user\Desktop\temp\AAA.txt

获取app启动时间

应用场景
1.企业对应用程序的启动速度有要求,可使用该命令进行测试
2.即使企业对程序启动时间没有明确要求,可参照同类软件启动时间,启动时间没有超过一倍即可。

命令格式
adb shell am start -w 包名/启动名

实例
模拟器 adb shell am start -W com.cyanogenmod.filemanager/.activities.NavigationActivity
============================================================================
Starting: Intent {
    act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.cyanogenmod.filemanager/.activities.NavigationActivity }
Status: ok
Activity: com.cyanogenmod.filemanager/.activities.NavigationActivity
TotalTime: 364
WaitTime: 365
Complete
============================================================================

安卓手机  adb shell am start -W com.android.settings/.Settings$ConnectionsSettingsActivity
============================================================================
C:\Users\v_user>adb -s 9889d5385354313342 shell am start -W com.android.settings/.Settings$ConnectionsSettingsActivity
Starting: Intent {
    act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.android.settings/.Settings }
Status: ok
Activity: com.android.settings/.Settings
ThisTime: 523
TotalTime: 523
WaitTime: 556
Complete
============================================================================
以上,可以看出模拟器的adb输出没有ThisTime一项

ThisTime: activity启动耗时(毫秒)
TotalTime: 应用层启动耗时=thistime+应用application等资源启动时间(毫秒)
WaitTime: 系统启动应用耗时=totaltime+系统资源启动时间(毫秒)
在这里插入图片描述

获取手机日志

如何获取手机日志
adb logcat -v time>C:\Users\fang\Desktop\temp\a.txt

使用步骤
1.打开需要测试的应用程序
2.找到触发bug的位置
3.使用查看日志命令
4.触发bug
5.获取日志信息

示例
1.安装bug.apk   【可以使用Android语言自己开发一个】
2.打开《有bug的程序》应用程序
3.命令行中输入adb logcat命令
4.点击登录按钮
5.获取日志信息

应用场景
当程序发生崩溃的时候,可以将日志信息发送给开发人员,便于其快速的定位bug
关于崩溃的处理,需要找日志中的“at”前面,的第一个字符是E的就是错误信息,可以记在记事本发给开发。

其他命令

adb install 路径/xx.apk  安装app到手机
adb uninstall 包名 卸载手机上的app,需要指定包名
adb devices 获取当前电脑已经连接设备和对应的设备号
adb shell 进入到安卓手机内部的linux系统命令行中.  是的,Linux命令!直接无敌! exit退出哦
adb start-server 启动adb服务端
adb kill-server 停止adb服务端
adb --help 查看adp帮助

Appium全自动化测试框架(python)冲错了

序言

Appium介绍
Appium是一个移动端的自动化框架,可用于测试原生应用,移动网页应用和混合型应用,且是跨平台
的。可用于iOS和Android操作系统。原生的应用是指用android或iOS的sdk编写的应用,移动网页应用
是指网页应用,类似于ios中safari应用或者Chrome应用或者类浏览器的应用。混合应用是指一种包裹
webview的应用,原生应用于网页内容交互性的应用。 重要的是Appium是跨平台的,何为跨平台,意思
就是可以针对不同的平台用一套api来编写测试脚本。

Appium自动化测试环境搭建
我们使用Appium和python来进行自动化测试,需要安装两个东西,一个是Appium的客户端,一个是
Appium-python库。这两个需要安装的东西在加上手机就可以进行自动化测试,它们之间的关系是:
python代码 -> Appium-python库 -> Appium -> 手机。

环境搭建

Appium客户端安装

Appium-Desktop 下载地址: https://github.com/appium/appium-desktop/releases
此文章采用的是appium-desktop-setup-1.8.2.exe

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

Appium-python库安装

CMD:pip install Appium-Python-Client
CMD: pip list
Package              Version
-------------------- ---------
Appium-Python-Client 2.11.1  出现就是安装成功

可能出现问题1WARNING: You are using pip version 22.0.4; however, version 23.2.1 is available.
You should consider upgrading via the 'C:\Users\v_user\Desktop\JAVA\QA\python\python.exe -m pip install --upgrade pip' command.
那就粘贴‘’里的命令升级就好了,直接解决
C:\Users\v_user>C:\Users\v_user\Desktop\JAVA\QA\python\python.exe -m pip install --upgrade pip
Requirement already satisfied: pip in c:\users\v_user\desktop\java\qa\python\lib\site-packages (22.0.4)
Collecting pip
  Downloading pip-23.2.1-py3-none-any.whl (2.1 MB)
     --------------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值