华为二面,原来是我对自动化测试的理解太肤浅了..

news2024/11/25 11:01:30

如何使用Python实现自动化测试

如果你入职一家新的公司,领导让你开展自动化测试,作为一个新人,你肯定会手忙脚乱,你会如何落地自动化测试呢?资深测试架构师沉醉将告诉你如何落地自动kan化测试,本次话题主要分为如下几部分内容:

1、什么是自动化?

2、分层自动化又是什么?

3、如何使用Python实现自动化测试?

4、RobotFramework自动化是不是适合你的境遇?

5、自动化落地成功,怎样日常维护?

什么是自动化?

有很多人做了很长时间的自动化但却连自动化的概念都不清楚,这样的人也是很悲哀,做这样的职业,却连最基本的概念都不清楚。我给大家列举出来如下(引自《软件评测师第69页》):

自动化测试的定义:

自动化测试就是通过测试工具或者其他手段,按照测试工程师的预定计划对软件产品进行的自动的测试,它是软件测试的一个重要组成部分,它能够完成许多手工无法完成或者难以实现的一些测试工作。正确、合理地实施自动化测试,能够快速、全面地对软件进行测试,从而提高软件质量,节省经费,缩短产品发布周期。

如上就是自动化测试标准概念,概括而言,无非就是使用自动化的手段代替人工,但是不是完全代替人工,在这里我不得不指出一个误区,有的人不了解自动化的含义,尤其是一些领导层,认为自动化是万能的,只要自动化做出来,功能测试就可以完全解放了,即使自动化脚本写的再智能,也不可能完全代替手工,并且自动化所耗费的人力也是对于整个项目组很大的开支。所以自动化测试不是万能。

自动化测试的概念引出后,咱们也要介绍一下自动化所包含的种类,在市面上最流行的自动化包括如下种类。

1、UI自动化

2、接口自动化

3、app 自动化

4、单元自动化

5、自动化测试工具(测试开发辅助工具)

种类很多,是不是所有的自动化种类都要在项目开展,这就引出我们新的观点,什么是分层自动化?

分层自动化又是什么?

先上张图

先来谈谈我在工作中看到的自动化测试的误区:

1、自动化测试脚本在完成后因为产品更新导致大量测试用例失效,由于团队忙于新功能开发,当失效的用例积累越来越多时,这些测试用例就慢慢失去维护。如果开发这些用例同学在的时候可能还好办。

2、大量的自动化测试脚本没有发现问题,上线后仍然问题不断。在测试中我们主要针对正常流程进行测试,但是在线上出故障的都是非正常流程。

3、代码质量问题严重。很多人写的单元测试只是构造一个输入然后检查返回值,结果是测试通过了但是问题却遗漏了。

4、重复轮子制造。大量的团队都在开发自己的自动化测试框架,实际上只是对各种开源框架进行裁剪完善。

分层测试包含如下几个层次:

1、单元测试:开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。

2、集成测试:也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求(如根据结构图〕组装成为子系统或系统,进行集成测试。在这里我们可以认为就是接口测试。

3、系统测试:将需测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素及环境结合在一起测试。在这里我们就可以理解为是UI测试。另外还要个综合规律发现得越早修复成本越低。

如何使用Python实现自动化测试?

就语言而言Python实现自动化无非就是调用对应封装好API。

在众多自动化测试框架中,针对语言都有对应的封装 。但是林林总总,自动化测试无非就要是分为这几大类型,我分别指出对应的自动化测试框架。

1、UI自动化

web自动化:selenium

GUI自动化:autoit

2、接口自动化

urllib2

requests

3、app 自动化

appium

4、单元自动化

和语言有关

看到如上框架,大家肯定会感觉学习自动化,你不仅要熟悉基本的框架内容知识也要对语言有相当的了解,才能真正的实现自动化测试。所以就引出今天要介绍的自动化测试框架RobotFramework。

RobotFramework自动化是不是适合你的境遇?自动化测试开发面临的问题

版本迭代的速度很快,迭代的时间很短,自动化测试开发是时间太短。自动化测试开发框架开发代价太大。尤其是针对初创团队,开发框架人力成本太高。

实际的项目,特别是大型项目,功能通常都是非常复杂的,对构建自动化测试用例也是一种挑战。

综上而论,针对部门规模也是有一定界限的,真正实现自动化测试方式和方法。

对于大型测试部门,有较强的开发能力可以考虑做一套自动化测试框架,但是针对小的团队,还是要选择轻量级的成熟的自动化测试框架。

RF特点

1、易于使用,采用表格式语法,统一测试用例格式。

2、可以使用关键字驱动(keyword-driven)、数据驱动(data- driven)和行为驱动开发 (BDD) 完成。

3、重用性好,可以利用现有关键字来组合新关键字;结果报告和日志

采集HTML格式,易于阅读。平台和应用性关联性。

4、易于集成,提供了命令行接口和基于XML的输出文件。

5、易于与版本管理集成。

6、关键字单词化,容易理解。

RF实现的架构图:

RF代码示例:

自动化测试只要用RF一个框架都能够解决

RF自动化测试框架是一个融合关键字驱动和数据驱动的自动化测试框架,本身在自动化角度上这种融合化自动化测试框架,是当前自动化框架发现的整体趋势。尤其是在工作当中简简单单使用一种框架,不能够满足工作遇到的需求。

自动化如何落地,怎样日常维护?

在实际的工作中自动化测试如何落地这个问题也是很大的痛点,往往自动化做了一大堆,却解决不了在工作中实际问题,自动化存在的价值无非就是两个方面,一是辅助功能做测试数据,二是做冒烟测试和回归测试,如果这两点都没有做到,自动化测试是不可能实现真正意义上应用,也谈不了节省人工。在实际工作过程中。还有一点也是很重要的一个问题,自动化刚开始做的时候,很重要的一点就是打地基,如果地基打不好,整个框架到后期会发现很多问题暴露出来,往往到最后就会舍弃这个框架。框架的选择和框架的开发很重要的,要求短期内自动化测试一定要做出来,可想而知自动化是不可能短期内做出来,架构设计不好,到后期返工可能性会更大。所以这也就决定了自动化前期不是盲目性的,要做好地基。

同样这样也引出咱们今天的重点,RobotFramework 自动化测试框架,一个成熟的自动化测试框架,而且这个框架背后有Python语言作为扩展,所有Python能够实现的东西,在这个框架都可以实现。框架很多,在选择的角度上而言,找一个成熟的框架,把工作的重心放到管理测试用例上,这个才是做自动化的最高层次。也是最贴切工作的价值和意义。一切推崇高技术含量的东西没有一点贴近工作的框架都是浪费时间。

技术行业,一定要提升技术功底,丰富自动化项目实战经验,这对于你未来几年职业规划,以及测试技术掌握的深度非常有帮助。

下面有我近几年的收集和整理,整体是围绕着【软件测试】来进行整理的,主体内容包含:python自动化测试专属视频、Python自动化详细资料、全套面试题等知识内容。

对于软件测试的的朋友来说应该是最全面最完整的面试备战仓库,为了更好地整理每个模块,我也参考了很多网上的优质博文和项目,力求不漏掉每一个知识点,很多朋友靠着这些内容进行复习,拿到了BATJ等大厂的offer,这个仓库也已经帮助了很多的软件测试的学习者,希望也能帮助到你!资料我都放在下方小卡片里,有需要的可以点击免费领取! 

 

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

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

相关文章

ChatGPT+Midjourney实现儿童绘本故事及其插图(数字1~10的故事)

一、背景 近期AI对话技术与AI绘画技术突飞猛进。其中1.)AI对话技术是指用于模拟人类语言交流的人工智能技术。它可以让机器通过自然语言文本或语音与人类进行交流,并能理解人类的话语内容并做出相应的回应。对话技术在语音助手、智能客服、智能创作等领域…

Android核心基础总结——小菜爱教程

-0基础学习路线 Java基础 设计模式 Linux基础 数据库 网络协议 Android基础 服务器端开发 然后就是环境搭建、activity、intent、Android基础、基础应用开发。如阶梯图: 核心基础进阶 1、泛型、注解 2、动态编程技术 3、虚拟机 4、虚拟机垃圾回收 5、类与对象…

忘掉Xavier初始化吧!最强初始化方法ZerO来了

文 | 小戏谈及最典型的深度学习模型的训练,脑海里浮现的格式化的套路是什么?给定一个问题,给定一个数据集,弯弯绕绕确定好选择的神经网络的架构,然后上手调参,接下来的工作彷佛像是固定的重复工作&#xff…

AD20和立创EDA设计(3)微调原理图和原理图检查

(1)本文主要介绍如何将从立创EDA导出的原理图在AD20进行调整。 (2)需提前观看:AD20和立创EDA设计(2)提取立创EDA的原理图库和PCB库; (3)邀请加入嵌入式社区&a…

英语学习词根词缀总结

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站 点击跳转浏览。 目录 一.联想法 二.词根词缀法 索引 高频词根A-B系列 1.ab/abs- 表示远离,或否定 2.ac-/acr- 表示尖,酸&#x…

CSS基础总结(二)

文章目录 一、CSS复合选择器 1.后代选择器 2.子选择器 3.并集选择器 4.伪类选择器 复合选择器总结 二、CSS元素显示模式 1.概述 2.块元素 3.行内元素 4.行内块元素 5.元素显示模式的转换 元素显示模式总结 三、CSS背景 1.概述 2.背景图片 3.背景平铺 4.背景图片位…

[Android移动安全渗透基础教程] 易受攻击的移动应用程序

也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大 少走了弯路,也就错过了风景,无论如何,感谢经历 0x01 如何设置 GoatDroid (FourGoats) 1.1 简介(概述&#…

【014】基于Vue.js的移动端购物商城网站(含源码、课设报告)

文章目录一、项目介绍二、代码及报告获取一、项目介绍 基于Vue.js的移动端购物商城网站(含源码、课设报告),代码获取放在文末了,码字不易,感谢点赞~ 一、系统概述 本部分主要是对项目进行简要描述,包括开发背景、目的、内容及意…

用C++如何进行判断

📒博客主页: ​​开心档博客主页​​ 🎉欢迎关注🔎点赞👍收藏⭐留言📝 📌本文由开心档原创! 📆51CTO首发时间:🌴2022年12月12日🌴 ✉…

5个可保存的在线代码片段平台推荐-变成自己的代码词典库

文章目录1、谷歌等现代浏览器自带的代码片段2、github、gitee、gitcode等在线托管平台的gist列表3、各大在线IDE平台4、掘金代码片段5、在线笔记1、谷歌等现代浏览器自带的代码片段 路径:浏览器开发者工具->源代码->代码段 可以新建很多代码段,在…

深度Linux 居家办公 内网穿透 ssh反向映射 访问公司办公内网 局域网的一个简单方案 + vnc图形界面

1. 公网服务器 自行参考以下项目: x86_64: Docker arm64: Docker 2. 处于内网的办公机器 2.1 vpn客户端 BIOS配置定时开机(一般在电源选项或者唤醒设置里) 安装vpn客户端,配置好证书 配置开机自动,参考配置 /usr/…

[附源码]Nodejs计算机毕业设计基于的扶贫产品展销平台Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置: Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分…

架构设计(三):引入缓存

架构设计(三):引入缓存 作者:Grey 原文地址: 博客园:架构设计(三):引入缓存 CSDN:架构设计(三):引入缓存 缓存是一个…

红黑树详解及代码实现(C++)

红黑树定义 红黑树是一种二叉搜索树,但在每个节点上增加一个存储位标识节点的颜色,RED或BLACK。通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其他路径长出两倍,因而接近平衡。&#xff0…

共同转债,新化转债上市价格预测

共同转债基本信息转债名称:共同转债,评级:A,发行规模:3.8亿元。正股名称:共同药业,今日收盘价:32.66,转股价格:27.14。当前转股价值 转债面值 / 转股价格 * …

TPU编程竞赛系列|基于TPU-MLIR实现UNet模型部署,比“快”更快!

由算能举办的TPU编程竞赛-AI应用挑战赛正式开赛啦!本次大赛会为选手们提供一个预训练的分割模型UNet及数据集,无需训练模型,选手使用算能的MLIR开源编译器进行编译、量化及调优,兼顾精度与推理速度,最终实现UNet模型在…

社媒营销14问

👇点击一键关注主笔:邹小困、邝晴岚主持人:增长黑盒分析师刘千出品:增长黑盒研究组前言移动互联网和智能终端的发展,共同催生了很多社交媒体,并吸引了大批量的用户。社交媒体已经成为日常生活的一部分&…

RTOS概念及线程的引入

目录 RTOS的概念 用人来类比单片机程序和RTOS 程序简单示例 提出问题 RTOS的概念 用人来类比单片机程序和RTOS 妈妈要一边给小孩喂饭,一边加班跟同事微信交流,怎么办? 对于单线条的人,不能分心、不能同时做事,她只…

深入解读云场景下的网络抖动 | 龙蜥技术

文/eBPF 技术探索 SIG 一、网络抖动背景 延时高,网络卡,卡住了美好! 应用抖,业务惊,惊扰了谁的心? 当你在观看世界杯梅西主罚点球突然视频中断了几秒钟 当你在游戏中奋力厮杀突然手机在转圈圈无法响应…

毕业设计-基于大数据的新闻推荐系统-python

目录 前言 课题背景和意义 实现技术思路 实现效果图样例 前言 📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科…