IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> APP(appium)自动化测试环境安装 & 相关介绍 -> 正文阅读

[开发测试]APP(appium)自动化测试环境安装 & 相关介绍

? ? ? ? app自动化测试,主要借助的是appium移动端自动化测试工具,移动端的测试相对来说,稳定性会差一点,同样,环境的安装也比较复杂,接下来简单介绍下APP自动化测试的环境安装,和其他相关介绍。


一、APP自动化测试环境安装

== 1、appium安装
- appium 服务等同于selenium 的 webdriver
- 有两种使用方式:

1)通过桌面程序,通过下载程序使用,会更直观,
下载地址:http://appium.io/
注意事项:
A:下载比较稳定的版本。1.13版本,
B:安装给用户,不要安装至all user,并记住安装位置(比较隐蔽,通过勾选隐藏文件可查看)
C:端口号:只要没占用,都可任意设置,常用端口号有:4723、4444
D:日志级别,大多为欸debug级别,上线了可为info级别
2)可通过命令行形式使用appium(appium command line命令)
A:安装node js(可不需要浏览器,可运行js代码)
B:cmd命令行,运行npm 
   npm install -g appium --ignore-webdriver-install
   -p +指定端口(4444、4723)
   
== 2、appium-python-client 
- 相当于pip install selenium 
  在python中安装为:pip install appium-python-client
       
== 3、手机(真机、模拟器都可)
   手机 ==》 要开启开发者模式,usb调试模式(多点两次版本号)
   模拟器 ==> 默认已开启开发者模式和usb调试
   验证是否连接上:cmd  ==》 adb devices

   
== 4、java安装
注意:
1)1.8版本以上,64位,尽量高版本,
2)配置JAVA_HOME和PATH路径;
3)配置后需重启才会生效,
验证方法: cmd ==》 java -version


== 5、andriod sdk环境安装
1) 安卓开发新手集成包:adt-bundle
2) 双击解压,配置ANDRIOD_HOME,
3) 配置adb环境变量、aapt环境变量
验证方法: cmd ==》 adb 、aapt(出现一长串文本)

二、启动应用程序,简单运行流程

== > 简单流程(得到一个driver)
1、cmd ==》 adb devices 确定手机在线,获取deviceName(设备名称)
2、启动appium服务,如appium启动为4444端口,可直接访问,因为此为默remote默认参数

- 方法一:
platformName:连接的系统平台
deviceName:设备名称  cmd ==》 adb devices 确定手机在线,获取deviceName
app:电脑上app的路径位置
以上三个为固定参数
from appium.webdriver import Remote

# 方法一:
caps = {'platformName':'Android','deviceName':'E3LBB20708105277',
        'app':r'C:\Users\lalanala\Desktop\xxxx-2018.apk'}
driver = Remote(command_executor = 'http://127.0.0.1:4723/wd/hub',desired_capabilities = caps)
-  方法二:
可不提供app路径,可通过提供app的 包名 和 activity,得到一个driver
查找:cmd == 》 aapt dump badging + 电脑上app安装包路径
获取 包名:package、入口:lauchable-activity
 
from appium.webdriver import Remote


# 方法二:
caps = {'platformName':'Android','deviceName':'E3LBB20708105277',
        'appPackage':'com.xxzb.fenwoo','appActivity':'com.xxzb.fenwoo.activity.addition.WelcomeActivity'}
driver = Remote(command_executor = 'http://127.0.0.1:4723/wd/hub',desired_capabilities = caps)
 ===>  夜神模拟器
注意事项:
当出现无法获取设备信息时,是因为夜神模拟器和jdk中,都有adb.exe,重复冲突了,
解决方法:  可将jdk中的adb.exe,复制到夜神模拟器的bin目录下,改为nox_adb.exe,之前那个可当为备份保存

三、Appium日志分析

===>  启动appium的参数
除了上面所讲的:platformName、deviceName、app(appPackge、appActivity)外,还有:
1)platformVersion  ==> 手机系统版本,校验作用
2)automationName ==> 自动化框架,(UiAutomator1、UiAutomator2)
3)noReset (不重启),True ==> 会使用缓存数据,False ==> 不使用缓存数据   (主要区别为:是否重启应用)
4)browserName ==> 直接测web用的(Chrome)
5)ChromedriverExecutable ==> 手机浏览器驱动
6)unicodeKeyboard ==> 支持unicode键盘 ==》True
7)resetKeyboard ==> 重启键盘 ==》True  ,与unicodeKeyboard,捆绑使用
8)autoGrantPermissions ==> 自动授权 ==》 True
另外需添加的参数,直接传到caps后面去即可;
== 》 appium日志分析:
1)appium服务端口信息,连接信息

2)python代码访问appium服务的 /wd/hub/session 这个接口,创建一个会话 (HTTP请求)

3)响应结果,之前W3C ==》 检验参数  BaseDriver 创建一个新会话

4)appium === 》 appium运行,框架运行,接收数据,

5)appium adb  ===》 服务启动adb程序,获取电脑上设备,如参数不通过则返回给客户端,

6)手动通过adb启动app ===>
[ADB] Running 'D:\adt-bundle-windows-x86_64-20140702\sdk\platform-tools\adb.exe 
 -P 5037 -s E3LBB20708105277 shell getprop ro.build.version.release'
[ADB] Current device property 'ro.build.version.release': 10
appium优势:
开源、跨平台、多语言

运行原理:
python代码,通过http向appium发送请求,appium再向手机端进行操作(Android和ios系统自带自动化框架的api)

四、adb的常用指令

1、adb == 》Android Debug Bridge 安卓调试桥

用于操作手机系统,类似于windows的cmd ; linux的bash
如无发现,可手动连接,adb devices  === > adb connect 127.0.0.1:62001
- adb shell ==> 进入手机的shell,android de linux系统发行版 deepin、ubuntucentos
查看前台应用activity应用名称: adb shell dumpsys activity | find 'mFocusedActivity'

- 安装app:(app不要有中文)
adb install 电脑|appname.apk
adb pull ==》 手机文件名,电脑路径、从手机获取
adb shell 。。。
adb push ==》 电脑文件名路径、手机文件路径、从电脑推文件
adb connect。。。
adb install ==》 装软件
adb shell pm list packages ==>列举所有安装的
adb devices  ==》设备是否连接

五、元素布局和控件

===>  appium inspect 元素定位
点击搜索,加载后,在所需功能,填入参数即可(在python中caps信息)
安卓标签,安卓组件  ===》 类似于html的标签

===》  元素布局和控件
1)元素布局:  框架布局、线性布局、绝对布局、相对布局、表格布局
2)元素控件:  imageview  tagname(图片标签)
             textview ==》 文件标签,  layout  == > 退出,  button ==》 按键
             checkbox ==》  多选,     switch == > 开关,  ratingbar ==> 评分条
             seekbar  ==> 拖动条       toast  == > 弹出   webview ==> 显示网页 (iframe在网页中嵌套另一网页)
3)属性
text 文本 区别:Android 中的text 和 html中的text
          html的text  ==》 不是元素属性,//*[text()='  ']
          app 的text  ==》 是元素属性 , //*[@text()='  ']
class  html中的class ==> 主要用于排版
       app 中的class ==> 元素属性名,vs tag_name
content-desc ==> 无障碍描述
resource_id ==> 等同于id, 优先使用定位
from appium.webdriver import Remote
from selenium.webdriver.common.by import By


caps = {'platformName':'Android','deviceName':'E3LBB20708105277',
        'appPackage':'com.xxzb.fenwoo','appActivity':'com.xxzb.fenwoo.activity.addition.WelcomeActivity','noReset':True}
driver = Remote(command_executor = 'http://127.0.0.1:4723/wd/hub',desired_capabilities = caps)
driver.implicitly_wait(10)     # 等待
driver.find_element(By.ID,'com.xxzb.fenwoo:id/iv_tab').click()   # 元素定位并点击
driver.quit()

总结

先简单记录至此,方便之后的复习和查看。

再逼自己一把吧,相信自己可以再进一层的,fighting~!!

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-08-03 11:30:55  更:2021-08-03 11:31:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 20:26:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码