APP自动化测试

大框架参考:appium新手入门(第2步Android和sdk安装与配置需要百度)


前提,已经安装好了JDK,Maven

一、安装Android SDK

1、下载地址

http://tools.android-studio.org/index.php/sdk

2、设置Android环境变量
在这里插入图片描述
3、安装Android 版本

双击 SDK Manage.exe 启动SDK管理器,可以根据自己的喜好选择安装 Android版本

4、配置安卓虚拟机

双击 AVD Manage.exe 启动AVD管理器,点击 “Create…” 按钮,创建Android虚拟机,保存后,点击 “Start…” 按钮启动

二、安装appium等工具获取页面元素

1、安装nodejs

2、官网下载

http://appium.io/,下载后直接安装,安装好之后,可以在CMD命令行模式下,输入appium-doctor来检查所有的配置是不是已经正确配置

3、还可以使用Android-sdk自带的元素定位工具UI Automator viewer、或Airtest IDE(https://airtest.doc.io.netease.com/)

UI Automator viewer通过截取当前页面获取元素。在文件夹加两个文件运行脚本即可:D:/app.uix和D:/app.png(百度吧)
页面截图脚本:【随便起个名字.bat】

@echo
adb shell uiautomator dump /sdcard/app.uix
adb pull /sdcard/app.uix D:/app.uix
adb shell screencap -p /sdcard/app.png
adb pull /sdcard/app.png D:/app.png
pause

三、引入appium-client
在这里插入图片描述
版本号可以去查一下最新的

四、第一个测试代码
在这里插入图片描述
这里面的各个属性值如何获取?

1、deviceName,可以通过adb devices命令查看

2、platformVersion(版本号)

3、platformName(Android/IOS)

4、如果是安卓,appPackage和appActivity也是要填的,这2个值比较难获取,可以简单的通过以下命令来获取

    a) 执行命令adb logcat > e:/log.txt

    b) 启动应用,随便做几个操作

    c) ctrl+c,结束上述命令,然后在log.txt里面搜displayed关键字

在这里插入图片描述
d) 红框里的是appPackage,蓝色框里的是appActivity

五、启动appium server

六、执行脚本

测试脚本demo:git@gitlab.tools.vipshop.com:jack02.li/HJ_E2E_UI_CASE.git下的appiumTest目录


Ok,Start:

1、安装abd工具

https://jingyan.baidu.com/article/22fe7cedf67e353002617f25.html

安装包:platform-tools_r31.0.0-windows.zip
在这里插入图片描述
打开我的电脑——高级系统设置——系统属性——高级——环境变量——编辑Path,将步骤1 adb所在路径添加到Path变量值中。最后点击“确定”。
在这里插入图片描述
重新打开一个cmd窗口,输入adb,可以看到如下的窗口,有显示adb的版本和用法,这就说明adb正确安装好啦。
在这里插入图片描述
2、与设备连接(注意要连代理:比如我的10.107.**.*:8888)

(1)连接真机–直接用数据线连接电脑和手机,–本次目的是与真机连接,后面第三项开始(3、Appium)说的都是真机操作

(2)手机云测平台:目前已有很多别人的设备,可以直接使用;如果需要将自己的设备接入云测平台,需要搭建STF。(网上有很多云测平台但收费)

↓↓↓↓↓↓↓↓

可以通过页面的功能安装APP(参考:RF app接入云测平台,但我在上传apk文件时有问题,使用abd命令直接安装似乎更方便),设置代理连接需要的测试环境

参考来源:手机云测平台接入

使用abd命令直接安装:win+R
在这里插入图片描述
前面带有IP和端口的是云测平台的模拟机,连接到的真机是这个一串字母+数字的设备:
在这里插入图片描述
adb命令:

adb connect 192.168.33.66:15017 连接服务器

adb devices / adb devices -l 查看连接的设备

adb install XX.apk 安转apk(桌面已有安装包,可以直接拉进来,自动显示路径)

adb disconnect XXX 断开连接

appium-doctor 命令:可以用来检验哪些东西(插件、安装包之类的)已安装和未安装 https://www.cnblogs.com/aziji/p/11972050.html

– ----Q:
在这里插入图片描述

3、Appium:

(1)安装与配置:
在这里插入图片描述
netstat -ano | findstr 4723 来自 https://zhuanlan.zhihu.com/p/142899252
在这里插入图片描述
在这里插入图片描述
----配置:Appium 服务器初始化参数(Capability):http://appium.io/docs/cn/writing-running-appium/caps/index.html

(来源:https://blog.csdn.net/weixin_43411585/article/details/89278447)

(来源:https://blog.csdn.net/weixin_43411585/article/details/89278447)
在这里插入图片描述

序号Desired Capability值(如何get√)
1platformNameAndroid或iOS
2deviceName设备名称,手机具体类型(model):adb devices -l
3platformVersion获取platform版本:adb shell getprop ro.build.version.release (https://blog.csdn.net/u011261943/article/details/102916951)
4appPackage查看APP程序包名:放下面吧
5appActivity(需要手机打开该APP)入口activity名,通常:放下面吧
6appActivity(直接查看具体apk包的结果)aapt dump badging D:\Users\jayla.*\Desktop\apk\VOS.apk 这时候的appActivity跟上面所用命令是不一样的,于是应用就可以启动了
4	appPackage	:adb shell dumpsys window w |findstr \/ |findstr name=	
5	appActivity :adb shell dumpsys window w |findstr \/ |findstr name=

方法三:

使用命令:adb shell dumpsys package com.vip.vosapp,回车之后找到包含“category.LAUNCHER” 字样的Activity即可
在这里插入图片描述


安装与配置成功,点start session:
在这里插入图片描述
------Q1:

这个是因为点击的元素不对,点错位置了:
在这里插入图片描述
------Q2:

如果不能运行,可能需要:在开发者模式下,打开usb调试功能(我的Android:设置–更多设置–开发者选项)

https://blog.csdn.net/qq_43184146/article/details/84668083

-----Q3:

启动不了会报错:首先检查那几个配置
在这里插入图片描述
-----Q4:

Could not connect to server; are you sure it’s running?

在这里插入图片描述
(2)Appium运行原理
来自 https://www.kancloud.cn/guanfuchang/python_appium/722899
在这里插入图片描述
Appium 在 Android 上的架构:
在这里插入图片描述
在这里插入图片描述
– 看不懂

(3)录制:

https://testerhome.com/topics/13077
在这里插入图片描述
生成代码:https://blog.csdn.net/qq_36396763/article/details/103609161

(4)自动化脚本与待测APK

使用java编写自动化用例,搭建maven环境,连接真机

(目前没有使用框架,待放到git,后面接入Jenkins、接入云测平台)

Q:

页面启动常常失败

应该是元素定位的问题 https://blog.csdn.net/qq_24754061/article/details/84284603

加了一句:driver.findElementById(“com.**.biw:id/content_view”).click();

在这里插入图片描述

或者 uiautomatorviewer 工具 D:\Android\android\sdk\tools

4、安装AVD

https://jingyan.baidu.com/article/066074d64d743cc3c21cb02b.html

5、接入Jenkins

在这里插入图片描述
6、STF:搭建 STF 服务, 使用 slave 节点添加 android 设备---------------??疑问

步骤 1. slave 电脑启动 adb server 并对外暴露 5037 端口
步骤 2. 启动 STF 服务时后缀 --allow-remote 结合第一篇文章, 完整的命令为:
sudo docker run -d --name stf --net host openstf/stf stf local --public-ip --allow-remote
步骤 3.
通过 STF provider 的方式, 使用 adb host, 将 slave 电脑上的 android 设备添加到 STF 服务上
stf provider --name centos74 --min-port 7400 --max-port 7700 --connect-sub tcp://127.0.0.1:7114 --connect-push tcp://127.0.0.1:7116 --group-timeout 900 --public-ip 10.24.51.1 --storage-url http://localhost:7100/ --adb-host 10.24.12.234 --adb-port 5037 --vnc-initial-size 600x800 --mute-master never --allow-remote

执行 adb -a -P 5037 fork-server server
会提示: reply fd for adb server to client communication not specified.
网上搜过一些方法, 如 adb nodaemon server -a -P 5037
直接使用会使 adb 关闭, 并会提示: This application has requested the Runtime to terminate it in an unusual way.
Please contact the application’s support team for more information.
此时如果 adb kill-server 后在执行 adb nodaemon server -a -P 5037

在这里插入图片描述
7、模块来自VQP:自动化用例管理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值