自动化测试——APP测试

news2024/11/16 15:46:00

一、环境配置

1、安装jdk 配置环境变量
2、Android SDK 环境安装
3、Appium Server安装
4、模拟器安装
5、安装appium-python-client Python第三方库

二、APP自动化测试原理

在这里插入图片描述

三、Desired Capabilites——APPium自动化配置项

1、设置参数
2、操作系统
3、选择版本
4、设备名称
5、包名
6、入口程序

四、常用ADB命令

1、连接模拟器
adb connect 127.0.0.1:62001
其他模拟器:雷神、夜神、mumu、逍遥
2、查看连接的设备
adb devices
3、查看被测app的包名及入口启动页面
aapt dump badging apk路径

五、Python代码实现操作手机终端

六、Appium日志查看

1、自动化脚本发送http请求
2、创建会话
3、确认终端设备是否连接,设置参数是否与终端一致
4、appium会推送一个包“AppiumBootstrap.jar”
模拟器上 api包:appium server指令进行接收、操控手机终端
5、响应Http请求
6、下一个Http请求

七、Appium元素定位工具

1、UI Automator view
Android SDK自带的定位工具
位置:Android SDK/tools/ul automatorvier.bat

八、元素常见的属性

  • text
  • resoueld
  • class:元素标签
  • Content-desc: 元素功能描述、语音播报

2、Appium Desktop Inspector
appium server 自带的定位工具

3、Weditor

Uiautomator python 第三方库appUI自动化测试框架

安装Uiatutomator:pip install Uiautomator
命令ol:python -m ulautomator2 init
命令os:pip install weditor
确认安装:cmd
weditor --help

九、Appium界面元素定位方法

1、通过resourceid属性定位

find_element_by_id 返回是webElement对象

2、通过文本定位:

find_element_by_android_uiautomator()

3、通过调用系统自带框架实现元素定位

基于java代码编写——UiSelector实现元素定位

4、通过content-desc/description属性实现元素定位

find_element_by_accessibility_id(“content-desc/description属性值”)

5、通过xpath定位

十、App元素操作

1、APP四大常用元素操作:点击click()、send_keys()、get_attibute()、text()
2、滑屏:多点触控、长按…
3、滑屏操作:左滑、右滑
Swipel(self:T,start_x:int,start_y:int,end_x:int,end_y:int,duration:int=0)

参数说明:

  • start_x:开始位置的x坐标
  • start_y:开始位置的y坐标
  • end_x:结束位置的x坐标
  • end_y:结束位置的y坐标

十一、POM及POM设计原理

POM四层:项目=n个页面=base层+pageobject层
第一层:base层,描述每个页面相同的属性及行为
第二层:pageobject层,每个的独有特征及特有行为
第三层:testcases层,用例层,描述项目业务流程
第四层:testdata层,数据层

十二、 Appium元素定位

1、通用定位策略
(1)ACCESSIBILITY_ID 无障碍访问ID
Android:content-desc
IOS:accessibility-id
(2)ID
Android:resource-id
IOS:name

在Slenium中id具有唯一性,appium的id是继承了Selenium,则在appium中,ID不具有唯一性

(3)Class
(4)Xpath:脆弱
(5)IMAGE:定位图片

2、专用定位策略
为不同平台专用

  • ANDROID_UIAUTOMATOR -UIAUTOMATOR2
  • ANDROID_VIEWTAG
  • ANDROID_DATA_MATCHER

使用UIAUTOMATOR2的语法进行元素定位
‘new uiSelctor( )、text(‘新闻’)’

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LeetCode 1857. Largest Color Value in a Directed Graph【拓扑排序,动态规划】困难

本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…

【LeetCode】148.排序链表

题目 给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。 示例 1: 输入:head [4,2,1,3] 输出:[1,2,3,4]示例 2: 输入:head [-1,5,3,4,0] 输出:[-1,0,3,4,5]示例 3&#xff1…

Go 下载安装教程

1. 下载地址:The Go Programming Language (google.cn) 2. 下载安装包 3. 安装 (1)下一步 (2)同意 (3)修改安装路径,如果不修改,直接下一步 更改后,点击下一…

软件测试/测试开发丨Selenium环境安装与使用

Selenium 官方网站: www.selenium.dev/ 简介: 用于web浏览器测试的工具;支持的浏览器包括IE,Firefox,Safari,Chrome,Edge等;使用简单,可使用Java,Python等…

InnoDB引擎底层逻辑讲解——逻辑存储结构

逻辑存储结构架构事务原理MVCC 1.逻辑存储结构 InnoDB逻辑存储结构图 mysql数据文件存储位置(linux系统) cd /var/lib/mysql一个mysql实例中有多个表空间,我们切换到某一个特定的数据库如itcast数据库,每个ibd文件都是一个表空间, cd it…

使用pikachu管理工具下的XSS后台进行实战

写在前面的重要提示: Attention:技术没有好坏之分,关键在于使用技术的人或组织。网络安全技术是一把双刃剑 – 作为网络安全人,虽然无法控制头上的帽子是否会变绿,但能控制不让它变黑;无论我们在物质上面对…

Cilium 系列-7-Cilium 的 NodePort 实现从 SNAT 改为 DSR

系列文章 Cilium 系列文章 前言 将 Kubernetes 的 CNI 从其他组件切换为 Cilium, 已经可以有效地提升网络的性能。但是通过对 Cilium 不同模式的切换/功能的启用,可以进一步提升 Cilium 的网络性能。具体调优项包括不限于: 启用本地路由 (Native Rou…

精读《自由布局吸附线的实现》

目录 判断 box 离哪条边最近 产生吸附效果 resize 时中间对齐线需要放大双倍吸附力 总结 自由布局吸附线的效果如下图所示: 那么如何实现吸附线呢?我们先归纳一下吸附线的特征: 正在拖动的 box 与其他 box 在水平或垂直位置距离接近时&am…

Spring之BeanDefinition(二)

Spring之BeanDefinition 文章目录 Spring之BeanDefinition1、对象和bean的区别2、BeanDefinition作用AutowireCandidate说明Primary说明ConstructorArgumentValues说明第一种使用方式第二种使用方式 MutablePropertyValuesabstract小结 3、BeanDefinition的发展历程3、BeanDefi…

RedHat7.9安装mysql8.0.32 ↝ 二进制方式

RedHat7.9安装mysql8.0.32 ↝ 二进制方式 一、rpm方式安装1、检查是否安装了mariadb2、下载mysqlmysql8.0.323、上传解压4、创建安装目录,拷贝解压后的文件至安装目录/usr/local/mysql8.0/5、创建相关目录,开始安装6、创建mysql组和用户7、更改安装目录归…

SpringAOP的相关概念

文章目录 一.什么是AOP二.AOP的组成部分三.SpringAOP的实现3.1 增加SpringAOP依赖3.2 创建切面3.2 创建切点3.3 创建通知3.4 创建连接点 四.SpringAOP的实现原理4.1 JDK动态代理4.2 CGLIB 动态代理总结 一.什么是AOP AOP,全称为Aspect-Oriented Programming&#x…

创建jupyterlab的快捷启动的一种方式

1、找Jupyter Notebook的快捷图标 首先,找到Jupyter Notebook的快捷图标,打开其文件位置。 2、复制Jupyter Notebook快捷方式 复制Jupyter Notebook的快捷方式 将复制Jupyter Notebook的快捷方式的这两处的Noetbook修改为lab。 如下图 3、找Jupy…

RocketMQ概论

目录 前言: 1.概述 2.下载安装、集群搭建 3.消息模型 4.如何保证吞吐量 4.1.消息存储 4.1.1顺序读写 4.1.2.异步刷盘 4.1.3.零拷贝 4.2.网络传输 前言: RocketMQ的代码示例在安装目录下有全套详细demo,所以本文不侧重于讲API这种死…

Git的常用命令以及使用场景

文章目录 1.前言2.工作区,暂存区,版本库简介3.Git的常用命令4.版本回退5.撤销修改6.删除文件7.总结 1.前言 在学习Git命令之前,需要先了解工作区,暂存区和版本库这三个概念 2.工作区,暂存区,版本库简介 在使用Git进行版本控制时,有三个重要的概念:工作…

day48-ajax+SSM分页

AjaxSSM分页 非分页版controller及html: 分页模糊查询controller: Postman测试(无网页): 分页网页: 分页网页中添加模糊查询: 分页网页中实现添加功能: (1&am…

VUE3-04

1. 编写代码过程中的问题与解决 1.1 错误:cant read property of undefined(name) (1)首先定位错误的位置 (2)逐一排查问题:注释代码;debugger;console.log (3&#xff0…

10.Docker安全和https

文章目录 Docker安全Docker存在的安全问题Docker架构缺陷与安全机制Docker 安全基线标准Docker安全总结 HTTPSHTTPS访问过程生成证书方式openssL生成证书过程 Docker安全 容器的安全性问题的根源在于容器和宿主机共享内核。如果容器里的应用导致Linux内核崩溃,那么…

Spring Tool Suite 4

参考:Spring tool suite4 安装及配置_springtoolsuite4_猿界零零七的博客-CSDN博客 下载:Spring | Tools 将下载的JAR进行解压两次,直至解压出contents中的sts 双击启动 第一次打开需要指定工作区文件夹 配置Maven的config 安装插件

C++ new/delete的使用

1.虚拟地址空间 可执行程序(进程)的虚拟地址空间: 内核:操作系统 栈区:函数的形参,非静态的局部变量,函数现场保护数据等等,栈是向下增长的,栈顶是低地址,栈…

基于fpga_EP4CE6F17C8实现的呼吸灯

文章目录 前言实验手册(EP4CE6F17C8)一、实验目的二、实验原理理论原理 三、系统架构设计四、模块说明1.模块端口信号列表2.状态转移图3.时序图 五、仿真波形图六、引脚分配七、代码实现八、仿真代码九、板级验证效果 …