APP自动化搭建与应用

APP自动化环境搭建

用于做APP端UI自动化,adb连接手机设备。

需要的工具java编辑器:jdk、Android-sdk软件开发工具组、appium的python客户端、nodes.js、夜神模拟器、apk包、uiautomatorviewer

第一步:安装sdk,里面包含建立工具build-tools 、拓展的附加包extras、安装下载的所有Android平台platform-tools、开发工具tools。安装之后在电脑设置找到高级系统设置-环境变量,用户变量名ANDROID_HOME,变量值填入sdk文件夹的路径。然后添加环境变量,在路径下添加四个工具包路径和build-tools里的android-4.4W文件夹路径。添加%ANDROID_HOME%\tools.

第二步:安装appium软件,,找到应用程序创建桌面快捷方式,在pycharm下安装或dos下在线安装 python操作客户端(dos窗口下安装)。dos使用命令:pip install Appium-Python-Client==1.0.2

第三步:安装node.js。在dos中查看版本,命令node -v,然后app自动化测试环境检查:appium-doctor

第四步:安装夜神模拟器并创建桌面快捷方式。

第五步:用dos连接模拟器adb connect 127.0.0.1:62001,服务地址在appium应用查看。

第六步:安装apk包。adb install +包名的绝对路径,apk包就下载到模拟器中了。

第七步:查看包名和活动路径名:aapt d badging 包名的绝对路径。(卸载安装包:adb uninstall com.baidu.yuedu)(adb shell pm list packages 查看已安装的应用,查找第三方包)( adb shell pm list packages -3 查看第三方已安装的应用)(adb devices 查看当前连接设备)(adb shell 进入到shell ctrl+c 退出 )(adb logcat 查看日志 ctrl+c 退出)(windows往手机上sdk传递文件:格式:adb push 文件路径/文件名 手机存放的位置)(手机往本地传递文件:

格式:adb pull 手机文件路径/手机文件 本地文件路径)(截图:格式: adb shell screencap -p 文件/图片.后缀名)(启动adb server 命令:adb start-server)(停止adb server 命令 adb kill-server )(adb disconnect 断开无线连接)

实战流程:

1.打开模拟器、appium、uiautomatorviewer

2.dos中连接appium;adb connect 127.0.0.1:62001

3.安装apk测试包:adb install D:\测试课程记录\jenkins\搭建环境需要的安装包\baiduyuedu_3760.apk

4.appium勾选override existing session,右上角启动appium

5.用uiautomatorviewer定位插件,打开,点击左上角获取页面元素,查看定位

6.xpath没有的话更换jar插件,将新的jar包放在sdk\tools\lib和sdk\platforms\android-20 下,重新启动应用

7.在模拟器中查看平台系统、平台版本和设备名称,在dos中获取apk包名和活动路径名,在appium中查看服务地址,打开pycharm输入要执行的自动化代码,点击运行

一、app自动化测试环境和用途:

主要用于做app端UI自动化,熟悉adb命令(a表示安卓,d表示debug,b表示桥)

adb是连接手机设备

二、搭建环境的工具

(1)jdk 已安装的省略这步,java的一种编译器 (本地windows安装)

jdk安装和配置环境变量

(2)查看jdk版本

在dos中输入java -version查看1.8.0_60

(3)android-sdk 软件开发工具组,里面存放一些类和函数

路径:D:\测试课程记录\jenkins\搭建环境需要的安装包\adt-bundle-windows-x86_64-20140702\sdk

(3)appium-python-client appinm的python的客户端

(4)nodes.js

(5)模拟器(夜神模拟器和逍遥模拟器)

(6)apk包、抓取软件

app环境的搭建

1、安装sdk

第一步:装sdk

详解:SDK (Software Development Kit)翻译成中文就是"软体开发工具组"

是用来帮一个产品或平台 开发应用程式的工具组,由产品的厂商提供给开发者使用的。

通常是 某一家厂商针对某一 平台 或 系统 或 硬体 所发布出来用以开发应用程式的工具组,在这个工具包里面,可能包含了各式各样的开发工具,模拟器等。给 Android平台 使用的 Android SDK 就是用来开发 Android系统上面的应用程式。

sdk存放了类,函数

SDK下包的说明:

1、:build-tools :建立工具

2、:extras:扩展的附加包

3、:platforms:安装下载的所有Android平台,分版本存放

4、:platform-tools:平台相关的工具

5、:tools:应用Android平台进行开发所需要的一些开发工具

(1)步骤:打开sdk:

(2)查看sdk下文件夹

(3)添加环境变量

点击电脑右键-高级系统设置-环境变量

变量名:ANDROID_HOME

变量值:sdk安装的路径:D:\测试课程记录\jenkins\搭建环境需要的安装包\adt-bundle-windows-x86_64-20140702\sdk

在path下添加路径:

D:\测试课程记录\jenkins\搭建环境需要的安装包\adt-bundle-windows-x86_64-20140702\sdk\build-tools

D:\测试课程记录\jenkins\搭建环境需要的安装包\adt-bundle-windows-x86_64-20140702\sdk\build-tools\android-4.4W

D:\测试课程记录\jenkins\搭建环境需要的安装包\adt-bundle-windows-x86_64-20140702\sdk\platforms

D:\测试课程记录\jenkins\搭建环境需要的安装包\adt-bundle-windows-x86_64-20140702\sdk\platform-tools

D:\测试课程记录\jenkins\搭建环境需要的安装包\adt-bundle-windows-x86_64-20140702\sdk\tools

安装appium


pycharm下安装或dos下在线安装 python操作客户端(dos窗口下安装)

pip install Appium-Python-Client==1.0.2

安装nodes.js

dos查看版本node -v

app自动化测试环境检查:appium-doctor

安装模拟器(讲课用夜神:62001)

安装好夜神模拟器创建快捷方式


adb 命名(重点)

(1)adb connect 127.0.0.1:62001 连接模拟器设备

(2)模拟器的端口号

夜神模拟器 端口号 :62001

海马玩模拟器 端口号:26944

mumu模拟器端口号:7555

天天模拟器 端口号:6555

(3)adb install +包名的绝对路径 安装apk包

案例:adb install D:\测试课程记录\jenkins\搭建环境需要的安装包\baiduyuedu_3760.apk

"D:\测试课程记录\jenkins\搭建环境需要的安装包\baiduyuedu_3760.apk"


(4)活动路径名:

查询包名或活动路径名:aapt d badging D:\测试课程记录\jenkins\搭建环境需要的安装包\baiduyuedu_3760.apk

包名:

活动路径名:

(5)adb uninstall 包名:

包名name='com.baidu.yuedu'

卸载安装包:adb uninstall com.baidu.yuedu

(6)adb shell pm list packages 查看已安装的应用,查找第三方包

adb shell pm list packages -3 查看第三方已安装的应用

(7)adb devices 查看当前连接设备

(8)adb shell 进入到shell

ctrl+c 退出

(9)adb logcat 查看日志

ctrl+c 退出

(10)windows往手机上sdk传递文件:

格式:adb push 文件路径/文件名 手机存放的位置

案例:adb push E:\bb.txt /data

sdk文件

本地存放的文件路径--模拟器上的路径

(11)手机往本地传递文件:

格式:adb pull 手机文件路径/手机文件 本地文件

案例:adb pull /data/bb.txt E:\

从模拟器上拉取文件到本地

(12)截图:

格式: adb shell screencap -p 文件/图片.后缀名

案例:adb shell screencap -p /data/user/j.png

(13)启动adb server 命令:

adb start-server

(14)停止adb server 命令

adb kill-server

(15)adb disconnect 断开无线连接

app自动化实战运用

一、打开模拟器

二、cmd中打开dos命令连接appium

adb connect 127.0.0.1:62001

三、安装测试包

adb install D:\测试课程记录\jenkins\搭建环境需要的安装包\baiduyuedu_3760.apk

下载好的jdk通过jenkins打包,通过URL或链接下载

四、打开appium

勾选session关闭,启动按钮开启appium

五、( 定位元素没有xpath的就删除原有uiautomatorviewer.bat,替换成新的)

开始定位,定位插件

"D:\测试课程记录\jenkins\搭建环境需要的安装包\adt-bundle-windows-x86_64-20140702\sdk\tools\uiautomatorviewer.bat"

创建快捷方式

六、打开,连接获取页面元素



七、更换插件(原有插件)

(1)更换sdk下tools

路径:D:\测试课程记录\jenkins\搭建环境需要的安装包\adt-bundle-windows-x86_64-20140702\sdk\tools

替换启动文件 bat

(2)将新的jar包放在sdk\tools\lib 下

路径:D:\测试课程记录\jenkins\搭建环境需要的安装包\adt-bundle-windows-x86_64-20140702\sdk\tools\lib

(3)将jar放在sdk\platforms\android-20

路径:D:\测试课程记录\jenkins\搭建环境需要的安装包\adt-bundle-windows-x86_64-20140702\sdk\platforms\android-20

然后点击bat启动

查看是否有xpath元素

模拟器设置中查看型号

创建一个python文件,写入自动化代码

案例1:

from appium import webdriver

from time import *

cs={

'platformName':'Android', #平台系统:Android or Ios

'deviceName':'OPPO R17', #设备名称

'platformVersion':'android-5.1W', #平台版本

'appPackage':'com.moji.mjweather', #包名

'appActivity':'com.moji.mjweather.LauncherActivity', #activity

'unicodeKeyboard': True, #使用unicode编码方式发送字符串 }

'resetKeyboard':True} #是将键盘隐藏起来

dx=webdriver.Remote("http://127.0.0.1:4723/wd/hub",cs)

sleep(10)

dx.find_element_by_id("com.moji.mjweather:id/jc").click() #同意进入

dx.find_element_by_id("com.moji.mjweather:id/azz").send_keys("北京市")

查看所需的参数数据:

(1)app端查看设备和版本

'platformName':'Android', #平台系统:Android or Ios

'deviceName':'SM­G9350', #设备名称

'platformVersion':'android­4.4W', #平台版本

(2)dos查看包名和活动路径名(命令:aapt d badging D:\测试课程记录\jenkins\搭建环境需要的安装包\baiduyuedu_3760.apk)

'appPackage':'com.baidu.yuedu', #包名

'appActivity':'com.baidu.yuedu.splash.SplashActivity', #activity 活动路径名

(3)appium查看服务地址

dx=webdriver.Remote("http://127.0.0.1:4723/wd/hub",cs)

from appium import webdriver

from time import sleep

desired_caps={

'platformName':'Android', #平台系统:Android or Ios

'deviceName':'SM­G9350', #设备名称

'platformVersion':'android­4.4W', #平台版本

'appPackage':'com.baidu.yuedu', #包名

'appActivity':'com.baidu.yuedu.splash.SplashActivity', #activity

'unicodeKeyboard': True, #使用unicode编码方式发送字符串 }

'resetKeyboard':True} #是将键盘隐藏起来

driver=webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps)

(一) 'platformName':'Android', #平台系统:Android or Ios

'deviceName':'OPPO R17', #设备名称

'platformVersion':'android­5.1W', #平台版本

修改手机类型

执行成功,在app端可以查看

自动打开书架代码:

from appium import webdriver #导入appium模块

from time import * #导入时间

#连接参数 cs

cs={

'platformName':'Android', #平台系统:Android or Ios

'deviceName':'OPPO R17', #设备名称

'platformVersion':'android-5.1W', #平台版本

'appPackage':'com.baidu.yuedu', #包名

'appActivity':'com.baidu.yuedu.splash.SplashActivity', #活动activity

'unicodeKeyboard': True, #使用unicode编码方式发送字符串 }

'resetKeyboard':True} #是将键盘隐藏起来

dx=webdriver.Remote("http://127.0.0.1:4723/wd/hub",cs)

sleep(12)

dx.find_element_by_id("com.baidu.yuedu:id/lefttitle").click()

任务:

1、搭建appium 2、写app自动化5条 3、梳理appium自动化搭建流程并写文档 4.用pycharm+python+appium编写五条测试用例并生成测试报告

相关推荐
朝九晚五ฺ5 小时前
【Linux探索学习】第十四弹——进程优先级:深入理解操作系统中的进程优先级
linux·运维·学习
Kkooe6 小时前
GitLab|数据迁移
运维·服务器·git
久醉不在酒7 小时前
MySQL数据库运维及集群搭建
运维·数据库·mysql
虚拟网络工程师8 小时前
【网络系统管理】Centos7——配置主从mariadb服务器案例(下半部分)
运维·服务器·网络·数据库·mariadb
BLEACH-heiqiyihu8 小时前
RedHat7—Linux中kickstart自动安装脚本制作
linux·运维·服务器
MXsoft6189 小时前
华为服务器(iBMC)硬件监控指标解读
大数据·运维·数据库
1900439 小时前
linux6:常见命令介绍
linux·运维·服务器
Camellia-Echo10 小时前
【Linux从青铜到王者】Linux进程间通信(一)——待完善
linux·运维·服务器
嚯——哈哈10 小时前
轻量云服务器:入门级云计算的最佳选择
运维·服务器·云计算
我是唐青枫10 小时前
Linux dnf 包管理工具使用教程
linux·运维·服务器