Appium python自动化测试系列之移动自动化测试!

news2024/11/20 3:24:05

1.1 移动自动化测试现状

因为软件行业越来越发达,用户的接受度也在不断提高,所以对软件质量的要求也随之提高,当然这个也要分行业,但这个还是包含了大部分。因为成本、质量的变化现在对自动化测试的重视度越来越高,在几年前自动化测试还没有像现在这么普及,但是现在随便去一家公司面试都会问到自动化测试,当然这个和他们公司是否运用到另说。

但是不言而喻的是大家都意识到了软件测试这个行业都走向了自动化这条路。或许你认为实施自动化可能不是必须的,可能在你的观念中测试思想是最重要的,所谓的自动化工具或者框架都是用来辅助的,但是作者想告诉你的是:计算机行业的发展、软件测试行业的发展其实就像工业革命一样,为的是通过此途径解决人类手工劳动的复杂性,当然可能并不一定是这几年出现,但是如果我们不学习肯定会被时代淘汰。

对于现在的我们来说自动化测试是我们必须掌握的技能,同时它也是这个行业的一种发展趋势,当然你想要提高到更高的一个档次可以往测试开发走,我坚信你能够走得更远。

1.2 本课程目标

因为作者也是从一个初学者过来的,而且在初学的过程中走了许多的弯路,所以作者希望通过本书带领读者从一个初级用户到高级用户,从不会到自己能够独挡一面。

我们共同的目的是先掌握android的基础知识、appium相关环境知识、python的基础知识、常见api的使用以及封装、日志的收集、报告的生成、再是我们常用的数据驱动、页面驱动,还有后面的unittest框架的介绍以及使用。

1.3 自动化测试流程

无论在做什么事情之前都需要掌握其流程,自动化也是一样,我们首先要掌握的就是流程,如果你连最起码的流程都无法掌握,那么你也没办法做好自动化。作者将通过自己的项目经验来写,当然这个不一定就是标准的答案,所以如果有觉得不符合的也不要吐槽,可以提出来一起讨论。

我们通过下面的图片来了解

可能有的人会有疑问说:这个怎么看就是一个v模型呢?这个作者只是为了让大家更容易理解这样编写的。可能还有人会说我们做自动化为什么不是直接拿着需求就开始写代码,浪费那么多时间去做其他的有什么好处呢?我们来一 一讲解。

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:310357728【暗号:csdn999】

1、需求了解:当给你一个需求或者一个系统让你去做自动化的时候你什么都不知道你就去做自动化能行吗?你不去分析需求或者系统的哪些模块儿适合做自动化你怎么去做?如果盲目的去做,当你做到后面的时候可能你框架还没弄好需求或者系统又变了,那你是否做了无用功?所以我们第一步一定是确定需求或者系统哪些模块适合做自动化,而且一定要明白这个需求或者系统做自动化给我们带来的好处是什么,而不是说做自动化就是为了表示我们会做。

2、需求分析:和需求了解有类似之处,我们在这个期间主要做的就是分析需求或者系统哪些模块适合做自动化,做自动化给我们的好处是什么,为后期方案提供参考,提供可用信息。

3、方案选择:有的人可能对选择方案会比较陌生,不知道这个到底是干什么的?那么问你一个很简单的问题,现在自动化测试框架常见的有robotium、appium、monkeyrunnner、UIAutomator等等,这么多的框架你为什么选择学习appium呢?其实这就是一个方案的选择,那么有时候你也会根据你项目的需求去选择一个更加适合的框架,让我们这个需求实现利益最大化。

4、环境准备:这个最好理解,方案选择好之后就该准备环境了。这个环境不会像大家想的那样配置一个jdk、appium、ide就行了,你需要考虑的是appium的版本、持续集成、代码管理等等问题,这个详细内容在后面框架部分作者会讲到。

5、系统设计:刚开始接触自动化的小伙伴可能对这个比较陌生,不知道什么叫做系统设计,不用担心。在做自动化的时候大家是否考虑过一个问题:在自动化过程中我们公用的东西是怎么提取出来的,为什么要按照不同的包结构来进行框架搭建,为什么不能够是所有的都在一个包下或者一个类下面?我们简单的看一下下面这个图片:

从图片中我们能够看出在这个工程中我们有专门存放app的地方,有单独的配置文件、case、以及读取配置文件的地方,共同的特点就是他们都没有在一起,这还只是一个简单的例子,在以后我们的工作中这个是最常见的,在开发之前我们就需要把这些规划好,因为一个项目往往是一个团队来做,那么大家肯定是先划分模块,分工,在后期还会涉及到一些模块间的调用。目的就是让我们一目了然的就知道这个包是做什么的,把公用的都提取了,各司其能。

6、编码:编码故名思意就是编写代码,只是这里我们的编写代码是根据事先写好的用例来进行编写代码。

笔者在这里说一个题外话,这个也是很多初学者会面临的一个问题,这也是为什么很多人看了一些自动化的资料但是一直无法做自动化的原因。在很多的公司自动化会分两个组,一个是开发测试框架,一个是写测试用例,这里的测试用例是自动化的case,不要理解错。

7、执行:执行是整个自动化展示成果的重要一部,最后的结果我们看到的是执行了多少case,通过多少,通过率是多少,失败的为什么失败。这也是领导或者其他相关人员想看到的数据。

那么为了这一步我们的自动化要做多少准备呢?作者会在本书中一 一给大家讲解。

1.4 自动化测试用例的编写

自动化测试用例和我们常用的功能测试用例虽说区别不是很大,但还是有一定的区别,下面我们用登陆功能来举例:

功能冒烟用例:

(备注:因为格式原因所以表格里面没办法调整,用例中步骤1=>1,以此类推)

上面图片就是一个简单登陆冒烟测试,自动化的用例不同之处在于更仔细。来我们直接通过下面的用例来给大家讲解:

自动化登陆用例:

通过上面的用例我们不难看出自动化和功能测试用例最大的区别在于自动化要求更详细,信息更加准确,当然这个并不是完全标准的,这个只是作者在工作中和接触的人中大家基本都用的类似用例。很多公司设计用例的和将用例转换为自动化脚本的并不一定是同一个人,所以我们需要保证的是别人看见你的自动化测试用例能够准确的编写出测试脚本,这也是我们的目的。

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
 

在这里插入图片描述

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

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

相关文章

【TiDB理论知识09】TiFlash

一 TiFlash架构 二 TiFlash 核心特性 TiFlash 主要有 异步复制、一致性、智能选择、计算加速 等几个核心特性。 1 异步复制 TiFlash 中的副本以特殊角色 (Raft Learner) 进行异步的数据复制,这表示当 TiFlash 节点宕机或者网络高延迟等状况发生时,Ti…

Java一对一聊天

服务端 package 一对一用户;import java.awt.BorderLayout; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.util.Vector;…

[idea]idea连接clickhouse23.6.2.18

一、安装驱动 直接在pom.xml加上那个lz4也是必要的不然会报错 <dependency><groupId>com.clickhouse</groupId><artifactId>clickhouse-jdbc</artifactId><version>0.4.2</version></dependency><dependency><group…

Python函数默认参数设置

在某些情况下&#xff0c;程序需要在定义函数时为一个或多个形参指定默认值&#xff0c;这样在调用函数时就可以省略为该形参传入参数值&#xff0c;而是直接使用该形参的默认值。 为形参指定默认值的语法格式如下&#xff1a; 形参名 默认值 从上面的语法格式可以看出&…

一篇解析context_switch进程切换(针对ARM体系架构)

一. 概述 在最近初学ebpf时&#xff0c;使用到了挂载点finish_task_switch统计内核线程的运行时间&#xff0c;遂进入内核源码对其进行学习分析。 finish_task_switch在context_switch被调用&#xff0c;其功能是完成进程切换的收尾工作&#xff0c;比如地址空间的清理。而co…

理解自我效能感:你的内在动力来源

1. 自我效能感&#xff1a;开启个人潜能的心理动力 想象一下&#xff0c;面对生活的挑战和机遇时&#xff0c;是什么内在力量驱使你去采取行动&#xff0c;或者让你犹豫不决&#xff1f;这种力量&#xff0c;与我们的心理状态紧密相关&#xff0c;其中一个关键因素就是我们的自…

【AIGC】prompt工程从入门到精通

注&#xff1a;本文示例默认“文心大模型3.5”演示&#xff0c;表示为>或w>&#xff08;wenxin)&#xff0c;有时为了对比也用百川2.0展示b>&#xff08;baichuan) 有时候为了模拟错误输出&#xff0c;会用到m>&#xff08;mock)表示&#xff08;因为用的大模型都会…

uView框架的安装与Git管理

参考链接&#xff1a;Http请求 | uView - 多平台快速开发的UI框架 - uni-app UI框架 安装 打开我们项目的cmd进行下载&#xff1a; yarn add uview-ui 首先我们要确定&#xff0c;未下载前的文件目录以及下载后&#xff0c;是多了个文件目录node_modules 下载完成之后我们就…

MTU TCP-MSS(转载)

MTU MTU 最大传输单元&#xff08;Maximum Transmission Unit&#xff0c;MTU&#xff09;用来通知对方所能接受数据服务单元的最大尺寸&#xff0c;说明发送方能够接受的有效载荷大小。 是包或帧的最大长度&#xff0c;一般以字节记。如果MTU过大&#xff0c;在碰到路由器时…

汽车电子之深力科推荐安森美车规级芯片

车规级芯片 在汽车制造业&#xff0c;就可靠性要求而言&#xff0c;车规级芯片无疑是要高于商业级和工业级。 而车规级芯片&#xff1a;顾名思义&#xff0c;就是应用到汽车中的芯片&#xff0c;它不同于日常生活中的消费品和工业品&#xff0c;该类芯片对可靠性要求较高&…

vue2+datav可视化数据大屏(3)

接上一节所说&#xff0c;当我们将接口封装完了后&#xff0c;我们需要给大屏进行内容填充啦 1,新建组件 &#x1f4d3; 我们在ser-views文件夹下新建9个vue组件&#xff0c;如下图所示&#xff0c;我给编号为1到9 &#x1f4d3;在组件里写入内容我是第一块...一次类推&#x…

100. 相同的树(Java)

目录 解法&#xff1a; 官方解法&#xff1a; 方法一&#xff1a;深度优先搜索 复杂度分析 时间复杂度&#xff1a; 空间复杂度&#xff1a; 方法二&#xff1a;广度优先搜索 复杂度分析 时间复杂度&#xff1a; 空间复杂度&#xff1a; 给你两棵二叉树的根节点 p 和…

学习IO的第五天

作业 &#xff1a;使用两个线程完成文件的拷贝写入&#xff0c;分线程1写入前半段&#xff0c;分线程2写入后半段&#xff0c;主线程用来回收资源 #include <head.h>void *sork(void *arg); void *sork2(void *arg);int file_copy(int start,int len) //拷贝的函数 {i…

Vulnerability: File Upload(Medium)--MYSQL注入

选择难度&#xff1a; 1.打开DVWA&#xff0c;并登录账户 2.选择模式&#xff0c;这里我们选择 文件上载的中级模式&#xff08;Medium&#xff09; 准备工作 1.在vsc里面写个一句话木马 2.下载BurpSuiteCommunit软件&#xff1a;百度搜索“burp suite官网” 下载地址www…

Xilinx FPGA——ISE时序约束“建立时间不满足”问题解决记录

一、现象 最近使用赛灵思的FPGA设计项目时&#xff0c;出现时序约束失效问题。 点进去发现如下&#xff1a; 一个始终约束没有生效&#xff0c;有多处报错。 二、原因 出现这个问题的原因是&#xff0c;建立时间不满足。 时序违例的主要原因是建立时间和保持时间不满足要求&a…

智能化与数字化:开展企业合规工作的新价值与方法

在现代商业环境中&#xff0c;企业合规成为了一项至关重要的任务。随着法规和监管标准的增加以及对企业道德和责任的更高要求&#xff0c;开展合规工作不仅有助于保护企业的声誉和利益&#xff0c;还能提升企业的竞争力和可持续发展。本文将探讨通过智能化和数字化手段开展合规…

碳化硅MOS管在三相逆变器上的应用-REASUNOS瑞森半导体

一、前言 三相逆变是指转换出的交流电压为三相&#xff0c;即AC380V&#xff0c;三相电是由三个频率相同、振幅相等、相位依次互差120度的交流电势组成。 三相逆变器的定义是将直流电能转换为交流电能的转换器&#xff0c;其基本原理就是SPWM&#xff0c;硬件架构为四个功率模…

9.关于Java的程序设计-基于Springboot的家政平台管理系统设计与实现

摘要 随着社会的进步和生活水平的提高&#xff0c;家政服务作为一种重要的生活服务方式逐渐受到人们的关注。本研究基于Spring Boot框架&#xff0c;设计并实现了一种家政平台管理系统&#xff0c;旨在提供一个便捷高效的家政服务管理解决方案。系统涵盖了用户注册登录、家政服…

超静音的两相步进电机国产驱动芯片GC6609,为什么可替代TMC2208/2209/trinamic的数据分析

GC6609 是一款超静音的两相步进电机驱动芯片&#xff0c;内置最大 256 细分的步进驱动模式&#xff0c; 超静音&#xff0c;低振动。芯片可以工作在 4~36V 的宽工作电压范围内&#xff0c;平均工作电流可以达到 2A&#xff0c;峰值电流 4A。内置自动增益控制环路&#xff08;AG…

《算法竞赛进阶指南》------图论篇

文章目录 0x01 Telephone Lines POJ - 36620x02 P1073 [NOIP2009 提高组] 最优贸易0x03 道路和航线 BZOJ22000x04 Sorting It All Out POJ - 1094 topo0x05 Sightseeing trip POJ - 1734 最小环问题0x06 Cow Relays POJ - 3613 S到E经过k条边的最短路0x07 走廊泼水节 &#xff…