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编写五条测试用例并生成测试报告

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/442426.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

QD1-P6 HTML常用标签:列表

本节视频 https://www.bilibili.com/video/BV1n64y1U7oj?p6 ‍ 本节学习HTML列表标签。HTML 列表有多种形式&#xff0c;最重要的有两种&#xff1a; 有序列表无序列表 一、有序列表 1.1 写法 <ol><li>首先</li><li>其次</li><li>最…

Shell入门基础学习笔记

目录 第1章 Shell概述 第2章 Shell解析器 第3章 Shell脚本入门 第4章 Shell中的变量 4.1 系统变量 4.2 自定义变量 4.3 特殊变量&#xff1a;$n 4.4 特殊变量&#xff1a;$# 4.5 特殊变量&#xff1a;$*、$ 4.6 特殊变量&#xff1a;$&#xff1f; 第5章 运算符 …

数据结构-4.5.KMP算法(旧版上)-朴素模式匹配算法的优化

朴素模式匹配算法最坏的情况&#xff1a; 一.实例&#xff1a; 第一轮匹配失败&#xff0c;开始下一轮的匹配&#xff1a; 不断的操作&#xff0c;最终匹配成功&#xff1a; 如上述图片所述&#xff0c;朴素模式匹配算法会导致时间开销增加&#xff0c; 优化思路&#xff1a;主…

Prometheus之Pushgateway使用

Pushgateway属于整个架构图的这一部分 The Pushgateway is an intermediary service which allows you to push metrics from jobs which cannot be scraped. The Prometheus Pushgateway exists to allow ephemeral and batch jobs to expose their metrics to Prometheus. S…

手撕数据结构 —— 顺序表(C语言讲解)

目录 1.顺序表简介 什么是顺序表 顺序表的分类 2.顺序表的实现 SeqList.h中接口总览 具体实现 顺序表的定义 顺序表的初始化 顺序表的销毁 打印顺序表 ​编辑 检查顺序表的容量 尾插 尾删 ​编辑 头插 头删 查找 在pos位置插入元素 删除pos位置的值 ​…

【JavaEE】【多线程】Thread类讲解

目录 Thread构造方法Thread 的常见属性创建一个线程获取当前线程引用终止一个线程使用标志位使用自带的标志位 等待一个线程线程休眠线程状态线程安全线程不安全原因总结解决由先前线程不安全问题例子 Thread构造方法 方法说明Thread()创建线程对象Thread(Runnable target)使用…

初始Redis

Mysql最大的问题在于,访问速度比较慢 而Redis是内存中存储数据的中间件,可以作为数据库使用,比较快,和Mysql相比,存储空间有限 Redis是在分布式系统中,才能发挥威力的,在单机程序,直接通过变量存储数据的方式,是比使用redis更优的选择 那么要求更大更快,就可以把redis和mysq…

修改银河麒麟操作系统V10(SP1)网卡名称为ethx

修改银河麒麟桌面操作系统V10&#xff08;SP1&#xff09;网卡名称为ethx 步骤一&#xff1a;查看当前网卡信息步骤二&#xff1a;修改GRUB配置文件步骤三&#xff1a;更新GRUB配置步骤四&#xff1a;编辑网络接口文件步骤五&#xff1a;重启机器 &#x1f496;The Begin&#…

【Kubernetes】常见面试题汇总(五十五)

目录 121. POD 创建失败&#xff1f; 122. POD 的 ready 状态未进入&#xff1f; 特别说明&#xff1a; 题目 1-68 属于【Kubernetes】的常规概念题&#xff0c;即 “ 汇总&#xff08;一&#xff09;~&#xff08;二十二&#xff09;” 。 题目 69-113 属于【Kube…

数据结构-排序1

1.排序的概念 排序&#xff1a;所谓排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff0c;递增或递减的排列起来的操作。 稳定性&#xff1a;假定在待排序的记录序列中&#xff0c;存在多个具有相同的关键字的记录&#xff0c;若经过排序…

【项目安全设计】软件系统安全设计规范和标准(doc原件)

1.1安全建设原则 1.2 安全管理体系 1.3 安全管理规范 1.4 数据安全保障措施 1.4.1 数据库安全保障 1.4.2 操作系统安全保障 1.4.3 病毒防治 1.5安全保障措施 1.5.1实名认证保障 1.5.2 接口安全保障 1.5.3 加密传输保障 1.5.4终端安全保障 资料获取&#xff1a;私信或者进主页。…

『网络游戏』窗口基类【06】

创建脚本&#xff1a;WindowRoot.cs 编写脚本&#xff1a; 修改脚本&#xff1a;LoginWnd.cs 修改脚本&#xff1a;LoadingWnd.cs 修改脚本&#xff1a;ResSvc.cs 修改脚本&#xff1a;LoginSys.cs 运行项目 - 功能不变 本章结束

【数据管理】DAMA-元数据专题

导读&#xff1a;元数据是关于数据的组织、数据域及其关系的信息&#xff0c;是描述数据的数据。在数据治理中&#xff0c;元数据扮演着至关重要的角色&#xff0c;是数据治理的基础和支撑。以下是对数据治理中元数据专题方案的详细介绍&#xff1a; 目录 一、元数据的重要性 …

Qt教程(001):Qt概述与安装

文章目录 一、Qt概述1.1 什么是Qt1.2 Qt优点1.3 Qt发展史1.4 支持的平台1.5 成功案例1.6 下载安装1.7 QtCreator介绍 一、Qt概述 1.1 什么是Qt Qt是一个跨平台的C图形用户界面应用程序框架。它为应用程序开发者提供建立艺术级图形界面所需的所有功能。它是完全面向对象的&…

如何高效使用Prompt与AI大模型对话

一、如何与人工智能对话 在人工智能的世界里&#xff0c;提示词&#xff08;Prompt&#xff09;就像是一把钥匙&#xff0c;能够解锁AI智能助手的潜力&#xff0c;帮助你更高效地获取信息、解决问题。但如何正确使用这把钥匙&#xff0c;却是一门艺术。本文将带你了解提示词的…

如何通过视觉分析检测车辆逆行行为

随着交通网络的快速扩展和车辆数量的持续增加&#xff0c;城市交通管理面临着前所未有的挑战。交通事故的多发原因之一是车辆逆行&#xff0c;这种行为不仅严重威胁其他车辆和行人的安全&#xff0c;也加重了交通拥堵问题。因此&#xff0c;如何有效监控并预防车辆逆行成为城市…

【Verilog学习日常】—牛客网刷题—Verilog进阶挑战—VL45

异步FIFO 描述 请根据题目中给出的双口RAM代码和接口描述&#xff0c;实现异步FIFO&#xff0c;要求FIFO位宽和深度参数化可配置。 电路的接口如下图所示。 双口RAM端口说明&#xff1a; 端口名 I/O 描述 wclk input 写数据时钟 wenc input 写使能 waddr input 写…

用 LoRA 微调 Stable Diffusion:拆开炼丹炉,动手实现你的第一次 AI 绘画

总得拆开炼丹炉看看是什么样的。这篇文章将带你从代码层面一步步实现 AI 文本生成图像&#xff08;Text-to-Image&#xff09;中的 LoRA 微调过程&#xff0c;你将&#xff1a; 了解 Trigger Words&#xff08;触发词&#xff09;到底是什么&#xff0c;以及它们如何影响生成结…

计组与体系软题1-数据表示与校验码

一、数的编码方式 题1-0的表示 题2-补码的补码原码 1. 这道题涉及到数的编码范围和进制转换2. 题3-采用补码的目的 二、编码范围 题1-补码的表示范围(-2^(n-1)~2 ^(n-1)-1) n是字长/位数&#xff0c;2^7128&#xff0c;范围为-128~127题2-原码范围&#xff08;-2^&#xff0…

LORD-GX5-45 ROS安装

1、驱动安装 https://github.com/LORD-MicroStrain/MSCL 上述下载 x64:C&#xff0c;在下载完的deb文件下执行 sudo dpkg -i <PACKAGE_NAME>.deb #install MSCL sudo apt install -f #install dependencies2、源码安装 #新建工作空间 mkdir -p ~…