8年资深测试,自动化测试常见问题总结,惊险避坑...

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

1、自动化测试简介

1)为什么要进行自动化测试?

①黑盒测试回归效率低;
②手动测试的偶然性和不确定性;
③回归的覆盖率不足;
④交付的产品质量无法保证,全靠评估;
⑤系统越复杂,问题越多;
⑥上线时间长、构建失败率高导致的蝴蝶效应(迭代快,加班多);

2)自动化测试能解决什么问题?

①提高出现问题后的响应速率;
②降低回归成本;
③提高回归覆盖率;
④提高回归效率;
⑤提高回归的稳定性;

3)自动化测试的不足有哪些?

①无法减少成本投入,而是为了加快测试结果反馈,提升测试质量;
②自动化适用于回归和冒烟,而不是发现BUG;
③录制回放功能是鸡肋,可视化并不是一个很好的做法;
④不是所有所有系统所有功能都适合做自动化测试;

4)常见的自动化测试框架?

接口自动化框架常用组合:

方案一:Java+TestNG/Junit+Maven/ANT/Gradle+Jenkins+Mysql+Testlink/Redmine
方案二:JMeter+Maven/ANT/Gradle+Jenkins+Mysql+Testlink/Redmine
方案三:Python+Unittest/Pytest+Jenkins+Testlink/Redmine
方案四:Python+Robot Framework+Jenkins+Testlink/Redmine

UI自动化测试框架常用组合:

方案一:Java+Selenium/Appium+TestNG/Junit+Maven/ANT/Gradle+Jenkins+Mysql+Testlink/Redmine
方案二:Python+Selenium/Appium+Unittest/Pytest+Jenkins+Testlink/Redmine
方案三:Python+Selenium/Appium+Robot Framework+Jenkins+Testlink/Redmine

通过上面的一些常见框架,你发现了什么?

它们都拥有共同特性:编程语言+单元测试框架+扫描编译工具+持续集成工具+数据库+项目管理工具。

编程语言:编写测试脚本、日志记录和输出;
单元测试框架:提供测试脚本运行、异常校验等一些列的配置;
扫描编译工具:测试文件扫描编译,一般配合持续集成工具使用效果更佳;
持续集成工具:Jenkins,经典的持续集成工具;
数据库:测试数据管理;
项目管理工具:测试结果统计管理;

自动化测试工具太多,上面只是列举使用率较高以及一些开源工具,具体的框架选型,需要根据具体项目特点和团队、个人技术特点来决定。

2、接口测试的意义和必要性

接口,即API,应用程序编程接口。以下主要说说接口测试的必要性和意义:

接口测试实施在多系统的平台架构下,有着极为高效的成本收益比(当然,单元测试收益更高,但实施单元测试的成本投入更大,技术要求更高,所以应该选择更适合自身的才是最好的方案)。

接口测试天生为高复杂性的平台带来高效的缺陷检测和质量监督能力,平台复杂,系统越庞大,接口测试的效果越明显。

总的来说,接口测试是保证高复杂性系统质量的内在要求和低成本的经济利益驱动作用下的最佳方案,主要体现在如下三个方面:

1)节省测试成本

根据数据模型推算,底层的一个程序BUG可能引发上层的8个左右BUG,而且底层的BUG更容易引起全网的死机;接口测试能够提供系统复杂度上升情况下的低成本高效率的解决方案。

2)接口测试不同于单元测试

接口测试是站在用户的角度对系统接口进行全面高效持续的检测。

3)效益更高

将接口测试实现为自动化和持续集成,当系统复杂度和体积越大,接口测试的成本就越低,相对应的,效益产出就越高。

3、开展接口测试必备的技能

开展接口测试需要的技能,基本就是以下几点:

业务流:了解系统及内部各个组件之间的业务逻辑交互;

数据流:了解接口的I/O(input/output:输入输出);

协议:包括HTTP协议,TCP/IP协议族;

工具:工具可以辅助我们更好更高效的完成工作,常用的接口测试工具有:Jmeter、LoadRunner、SoapUI、Postman等;

数据库知识:无论是从数据库获取知识,还是确认数据落地,抑或接口对数据执行了哪些操作,都需要确认,因此数据库知识(其实就是增删改查)就很有必要;

接口文档的几个必要点:完整性、一致性、容错性;

4、接口自动化测试

1)如何开展接口测试?

首先,调试单个接口,保证单个接口的正确和通畅(类似于性能测试中的基准测试);

其次,明确数据流,业务流;
最后,将N个接口测试脚本串起来,执行即可;

最重要的一点,别想太多太复杂的层面,先把最基础最简单的做起来,就成功一大半了,至于扩展性的第三方接口、https、定时任务、自动出测试报告、自动发邮件等等功能,这都是不断累计和优化的,想太多不如行动起来,让接口自动化测试落地,才是我们首先需要考虑的。

2)开展之前需要明确的问题?

①现在的测试对象包含几个页面?
②每个页面涉及几个接口?
③分别在哪一步调用?
④每个接口包含哪些字段?
⑤各个字段对应数据库哪张表?
⑥每个表中各个字段是什么意思?
⑦各个接口对表产生了怎样的操作?

3)搭建自动化测试框架

什么是框架?
你可以理解为一个完整的环,也可以理解为让接口测试脚本运行的一整套环境,平台,随便什么都可以;一般一个自动化测试框架包含以下几点。

数据池:即测试数据的存储管理,一般集成为一个data包,其中包括:

log(日志文件)、report(测试报告文件,一般为xml格式)、case-data(单个接口的测试数据,一般为json格式)、server-data(接口业务串联的数据,可以用excel管理)

脚本管理中心:接口测试脚本的统一管理、存储、调度中心,常用的工具有maven、ant等,或者可以使用编程语言中的单元测试框架提供的功能,选择自己适用的即可;

运行平台:一般是借助工具来运行这些测试脚本,工具可以使用上面提及到的几种(jemter、loadrunner、soapui等),同样,选择合适的很重要;

持续集成工具:最常见的就是Jenkins,它的作用就是监控外部程序的调用执行,定时或者触发调度任务,测试脚本执行等功能;

通信服务:dubbo、spring_boot、thrift等RPC、REST同步调用服务;

测试结果统计管理中心:比如testlink,目的是为了测试结果自动更新上传,更好的统计测试结果,以便后期的优化;

总而言之,接口自动化测试的意义就是:数据与脚本分离,测试结果自动提交通知,提高测试脚本和测试数据的维护便利等等。

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

只有通过不断地奋斗和努力,才能真正地实现自己的梦想,去创造自己的未来,去改变自己的命运,去赢得自己的成功。

成功并不是一蹴而就的事情,它需要长期不懈的努力和辛勤的汗水,要勇敢地追求自己的梦想,不断超越自己,坚持不懈地努力,最后才能取得真正的成功。

每个人都有自己独特的天赋和才华,要善于挖掘自己的潜力,充分利用自身的优势,不断改进和完善自己,不断取得新的突破,最后一定能取得优异的成绩。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

大模型真的会让软件测试人员下岗吗?

在今年3月写过一篇文章:又一次被震惊:从生成和细化需求到应用各种方法设计测试用例 ,展示了chatGPT生成测试用例,而且可以用不同的方法生成测试用例,在我们的引导下它还能补充测试用例、完善测试用例。半年之后&#x…

华为昇腾阿木实验室FMT,开展无人飞艇开发者线下体验活动!

活动背景 气球机器人是一种利用气球作为飞行平台的可编程飞行器,它利用浮力作为主要升力,在灵活性、稳定性和安全性方面展示了巨大的潜力。近年来,这些机器人已在航拍、气象观测、水文学、侦察和特勤等领域发挥了重要作用。 气球机器人是未来…

使用契约的链上限价订单

我们开发了链上限价订单。 它基于一种称为契约的智能合约,只有在花费输出的交易满足特定条件时才可以花费输出。 为了演示其工作原理,我们实施了以比特币支付的 Ordinals 代币买卖限价订单,无需托管人。 它可以运行在任何比特币协议链上&…

List 函数排序操作,用对方法事半功倍!

作为一名程序员,以下这些场景你肯定不陌生, 1.数据分析和处理:在处理大量数据时,需要对数据进行排序以进行进一步的分析和处理。例如,在市场调研中,可能需要按照客户的购买频率对客户列表进行排序&#xf…

53. 最大子数组和 : 图解从 O(n) 的常规理解到 O(n) 的分治做法

题目描述 这是 LeetCode 上的 「53. 最大子数组和」 ,难度为 「中等」。 Tag : 「前缀和」、「区间求和问题」、「线性 DP」、「分治」 给你一个整数数组 nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素)&#…

刚果(布)市场开发攻略,收藏一篇就够了

刚果(布)是非洲西部的一个国家,中国是刚果布第一大出口国,第二个进口国,经济联系比较紧密,从中国进口产品主要机械配件、建材、电机、针织或钩编的服装及衣着附件、蔬菜、水果等。本身国内治安良好&#xf…

抖音直播招聘报白又叫报抖音的白名单要不然就会封禁直播间

抖音直播招聘报白,又叫报抖音的白名单,只有进了抖音白名单里才能在直播间说招聘或者找工作等相关词,要不然就会封禁直播间,小视频也不会给推流,还会限流,但是如果做了抖音报白,官方也会给一部分…

学习教授LLM逻辑推理11.19

学习教授LLM逻辑推理 摘要1 引言2前言2.1事件关系提取2.2 演绎推理 3 揭示逻辑推理中的LLMS3.1 LLM如何执行任务3.1.1数据源3.1.2实验装置3.1.3 分析 3.2 LLM如何执行抽象多跳推理?3.2.1数据来源3.2.2 实验装置。3.2.3 分析。 4 逻辑推理教学4.1 LLM的上下文学习4.2…

学生作业管理系统的设计与实现-计算机毕业设计源码20912

摘 要 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势;对于学生作业管理系统当然也不能排除在外,随着网络技术的不断成熟,带动了学生作业管理系统,它彻底改变了过…

vue如何开启gzip压缩

什么是gzip: Gzip 是一种压缩算法,在网络传输中使用非常普遍。 需要注意的是,Gzip 压缩仅对于文本类型的资源有明显提示,压缩后的体积大约是压缩前的 1/3。 但是对于图片,音视频等媒体资源,本身就采用了…

lvm操作和扩容根分区

扩展逻辑卷 [rootlocalhost ~]# pvcreate /dev/sdb1 vgextend vg1 /dev/sdb1(表示将/dev/sdb1扩展到centos卷组,扩展卷组就是将其它分好的区加入卷组) [rootlocalhost ~]# vgextend centos /dev/sdb1[rootlocalhost ~]# lvextend -L 50G /…

【图像分类】【深度学习】【轻量级网络】【Pytorch版本】MobileNets_V2模型算法详解

【图像分类】【深度学习】【轻量级网络】【Pytorch版本】MobileNets_V2模型算法详解 文章目录 【图像分类】【深度学习】【轻量级网络】【Pytorch版本】MobileNets_V2模型算法详解前言MobleNet_V2讲解反向残差结构(Inverted Residuals)兴趣流形(Manifold of interest)线性瓶颈层…

德思特分享丨一文带你了解ADC测试参数有哪些?

来源:德思特测量测试 德思特分享丨一文带你了解ADC测试参数有哪些? 一文带你了解ADC测试参数有哪些 模数转换器(ADC)是数字电子系统中重要组成部分,用于捕获外部世界的模拟信号,如声音、图像、温度、压力…

修改bat文件默认编辑软件

Windows默认编辑bat文件的软件是自带的文本编辑器。无法高亮显示bat中的命令。 修改方式一: 打开注册表文件,变更键值 HKEY_CLASSES_ROOT\batfile\shell\edit\command 对应软件地址 修改方式二: 制作批处理文件,代码如下&#x…

【Highway-env】IntersectionEnv代码阅读

文章目录 主要完成任务代码结构1.action space2.default_config3.reward_agent_rewards_agent_reward_reward_rewards小结 4.terminated & truncated5.reset_make_road_make_vehicles_spawn_vehicle 6.step 主要完成任务 IntersectionEnv继承自AbstractEnv,主要完成以下4个…

Oracle数据库透明加密 安当加密

安当TDE透明加密组件是一种用于数据保护的解决方案,它对数据进行加密,以防止未经授权的访问和数据泄露。 以下是安当TDE透明加密组件的主要功能介绍: 数据保护:安当TDE透明加密组件可以对数据库中的敏感数据进行加密,…

基于springboot实现大学生就业服务平台系统项目【项目源码】

基于springboot实现大学生就业服务平台系统演示 Java技术 Java是由SUN公司推出,该公司于2010年被oracle公司收购。Java本是印度尼西亚的一个叫做爪洼岛的英文名称,也因此得来java是一杯正冒着热气咖啡的标识。Java语言在移动互联网的大背景下具备了显著…

深度学习人脸表情识别算法 - opencv python 机器视觉 计算机竞赛

文章目录 0 前言1 技术介绍1.1 技术概括1.2 目前表情识别实现技术 2 实现效果3 深度学习表情识别实现过程3.1 网络架构3.2 数据3.3 实现流程3.4 部分实现代码 4 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习人脸表情识别系…

如何构建更简洁的前端架构?

目录 为什么需要前端架构? 那么,前端架构是什么样的呢? 使用了哪些层? 那么,这种架构会出什么问题呢? 我们应该如何避免这些错误? 哪些原则应适用于组件? Anti-Patterns 反模…

HCIA-实验命令基础学习:

视频学习: 第一部分:基础学习。 19——子网掩码。 27——防火墙配置: 32——企业级路由器配置: 基础实验完成:(完成以下目录对应的实验,第一部分基础实验就完成。) 方法&#xff…