自动化测试如何做?自动化测试疑难问题+解答,进阶高级测试...

news2025/2/22 3:29:54

目录:导读

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


前言

你们的自动化(用例执行自动化)流程是怎么样的?

1、制定测试计划(明确测试范围-自动化可行性、分层测试,测试目的-功能、非功能,测试内容-需求,方法,资源人力要求)

2、评审
3、分析测试需求(需求转化为测试需求),明确测试点,优先设计项目中相对稳定且相对重要的模块。
4、设计测试用例
5、搭建自动化测试框架
6、编写测试脚本,把具体的测试用例脚本化(包含准备,执行,断言,清理四部分)
7、执行测试
8、获得测试结果
9、跟踪缺陷
10、持续集成(一个完整的持续集成系统包含:一个自动构建过程,包括自动编译、分发、部署和测试)

你在自动化测试中遇到什么问题?

测试脚本重复代码过多,难以维护。引入 PO 模型,参数化。
被测平台不稳定,经常导致元素定位失败

自动化测试的常见使用场景?

回归测试:通过自动化测试快速验证是否引入新的缺陷,以及旧的缺陷是否修复成功
冒烟测试:在手工测试之前先跑一轮自动化测试,保证项目主流程没有问题
在需要生成大数据量的时候也可以用自动化测试
线上巡检:构建自动化测试每日巡检,用于每日实时监测线上产品主流程的稳定性和可用性
固化资产:通过自动化测试可固化测试资产(流程、工具、代码、文档)
建立测试与代码的覆盖联系:通过自动化工具能够确定测试用例的覆盖路径,确定测试用例集对程序逻辑流程和控制流程的覆盖

如果让你来从零主导,如何开展自动化测试?

前期准备:
评估被测项目是否适合做自动化测试(什么样的项目、团队适合开展自动化测试?)
评估被测项目适合在哪些功能模块做自动化测试(什么样的功能模块适合开展自动化测试?)

确定使用何种测试工具、测试框架
评估开展自动化测试需要哪些资源,包括:人员、机器、时间;
当前可用或是可以申请到的资源;
如何在不影响日常测试工作的前提下,开展自动化测试工作;

启动自动化测试工作:
确定自动化测试框架的开发原则;
搭建自动化测试框架;
确定自动化测试用例的编写原则;
根据功能测试用例,筛选可转换为自动化测试用例的用例集,评审;
编写自动化测试用例;
评审自动化测试用例;
编写自动化测试脚本;
调试自动化测试脚本;
运行自动化测试脚本;
输出测试结果,将报告发送至同事邮箱;

后期工作:
完善自动化测试用例;
定期根据实际情况,调优自动化测试脚本、框架;
集成 CI,定时执行自动化测试脚本,自动发送测试结果到同事邮箱;

如何挑选自动化测试框架/工具?

根据测试类型进行初步区分:
接口自动化测试;UI 自动化测试;性能测试;

接口自动化测试:
工具:postman(入门)、jmeter(高级)
若需要结合代码更加推荐用 jmeter。
代码:Python + Requests + 单元测试框架(Unittest、Pytest)、Cypress、HttpRunner、RobotFramework

UI 自动化测试:
app 端:Appium、Airtest、RobotFramework
小程序:MiniProgram
Web 端:Selenium、Cypress、RobotFramework
Window 端:Cypress(electron 框架的应用)、Airtest

性能测试:
Jmeter(开源,可二次开发)
Loadrunner(付费)

自动化脚本可能出错的原因?

配置环境引起:
自动化测试脚本的配置;
对测试程序进行配置。如:是否还原初始设置、是否删除某些数据。
对浏览器进行配置;
对与测试程序有关的程序或影响脚本稳定性的程序进行配置;

非配置环境引起:
网络延时,识别对象的同步问题;
未知因素引起脚本失败;
未知因素引起脚本运行中断;
自动化脚本本身使用了不稳定的因素;
脚本的继承性,上个脚本失败导致了下一个脚本也失败。

提高脚本稳定性?

提高脚本的稳定性:
既要满足稳定的要求,又要兼容不同的环境、平台等
稳定性,即自动化的脚本能重复使用,且脚本不报错,系统报错除外
兼容性,即是能在不同的平台、环境下运行

解决方案:
为了能重复运行脚本,应在运行之前、以及运行完后进行数据清理,分为前置清理、后置清理;

数据尽量不要写死,固化的数据容易被别人修改,尽量目前的执行单元做到数据的可配置化,做到集中维护,也可以通过依赖其他接口的动态生成,这样避免原来写死的数据失效;

脚本异常处理,加入失败重跑机制,如遇到失败,设置重试次数;

提升环境稳定性,包括自身环境稳定性和第三方系统环境稳定性(将测试环境独立出来,可灵活配置运行环境);

Windows、Linux环境下文件路径要做兼容,因为两个系统获取文件路径的方式不一致;

异常捕获处理,有异常跳过、或标记;
确保用例的完整性、独立性,可耦合,可独立运行;
依赖第三方服务的接口需要设置合理的超时时间;
持续验证,保持一定的运行频率,比如每日巡检等,避免因长时间未运行和自身脚本成熟度不够高,导致阶段性维护时间过长。

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

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

不论遇到多少挫折,心中的梦想永远是前行的动力,努力是成就的基石。坚持奋斗,燃起内心的火焰,不负青春,追寻自己的光芒,在辉煌的舞台上绽放无悔的篇章!

勇往直前,不问结果,只为那份努力和拼搏的坚持;奋斗的道路虽曲折,但收获的成长与收益永远超乎想象。相信自己的实力,敢于追逐梦想,用汗水铸就辉煌,书写不朽传奇!

不论起点如何,只要心存追求,坚持不懈,每一次的努力都是向成功迈出的一步。勇敢面对困难,无惧失败,用激情和执着书写自己的辉煌篇章,让奋斗成为生命最美妙的旋律!

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

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

相关文章

QT的内存回收机制

QT的内存回收机制 QT中内存回收的本质 Qt中有内存回收机制, 但是不是所有被new出的对象被自动回收, 满足条件才可以回收 如果想要在Qt中实现内存的自动回收, 需要满足以下两个条件: 创建的对象必须是QObject类的子类(间接子类也可以)创建出的类对象, 必须要指定其父对象是谁,…

利用RLHF优化大模型:提升性能与应用能力

在数据科学不断发展的过程中,大模型在自然语言处理、图像识别、金融预测等各个领域的应用越来越广泛。然而,大模型的训练和优化也面临着越来越多的挑战,例如数据量过大、计算资源不足、超参数调整困难等。传统的机器学习算法往往难以处理这些…

(学习笔记-IP)IP基础知识

基本认识 IP在TCP/IP参考模型中处于第三层,也就是网络层。 网络层的主要作用是:实现主机与主机之间的通信,也叫点对点的通信。 网络层与数据链路层的关系: MAC的作用是实现直连的两个设备之间通信,而IP负责没有直连的…

dbeaver下载及安装

dbeaver下载及安装 dbeaver下载安装执行 【近期收到公司通知,需要卸载navicat,找其他免费开源数据库管理工具】 dbeaver下载 地址: https://dbeaver.io/download/迅雷下载会快很多 安装 一步一步安装就行了: 启动 执行

IDE /完整分析C4819编译错误的本质原因

文章目录 概述基本概念代码页标识符字符集和字符编码方案源字符集和执行字符集 编译器使用的字符集VS字符集配置 有何作用编译器 - 源字符集编译器 -执行字符集 Qt Creator下配置MSVC编译器参数动态库DLL字符集配置不同于可执行程序EXE总结 概述 本文将从根本原因上来分析和解…

安全是最珍贵的 ,不要让自己的自己的秘密成为“梨润”的来源!!!

近日,某高校毕业生在校期间窃取学校内网数据,收集全校学生个人隐私信息的新闻引发了人们对互联网生活中个人信息安全问题的再度关注。在大数据时代,算法分发带来了隐私侵犯,在享受消费生活等便捷权利的同时,似乎又有不…

顺序表(增删改查)

目录 1.线性表 2.顺序表 2.1静态顺序表 2.2动态顺序表 3.顺序表接口 4.顺序表实现 4.1初始化 4.2销毁 4.3打印 4.4尾插 4.5尾删 4.5.1尾删改进 4.6检查是否存满 4.7头插 4.8头删 4.9 1.线性表 线性表 (inear ist)是n个具有相同特性的数据元素的有限序列。线…

【JavaEE】基于Servlet与MySQL实现一个简易网站

目录 前言 一、实现表白墙的前期准备工作 1、约定前后端交互的接口 1.1、接口一:页面获取当前所有的留言消息 1.2、接口二:提交新消息给服务器 二、前端和后端代码的实现 1、数据的永久化保存 2、小结 前言 之前小编在写前端页面的时候&#x…

大模型入坑指南 大厂vs初创公司

大模型竞争激烈,创业公司随时可能倒掉,造成项目烂尾,EB3.5已经跟国内其他模型拉开了差距… 人工智能是当前时代的重要热点之一,它正在改变着我们的生活和工作。在人工智能领域,有一种技术尤其引人注目,那就…

RocketMq 事务消息原理

Rocketmq 事务消息API使用 使用TransactionMQProducer类。 实现TransactionListener 接口覆盖其方法executeLocalTransaction和checkLocalTransaction 即可。 其中executeLocalTransaction 执行本地方法和checkLocalTransaction 事务状态回查。 玩法 简历一张本地事务表&…

Centos报错:[Errno 12] Cannot allocate memory

执行一个脚本刚开始正常,后面就报[Errno 12] Cannot allocate memory 如果内存不足,可能需要增加交换内存。或者可能根本没有启用交换。可以通过以下方式检查您的交换: sudo swapon -s如果它为空,则表示您没有启用任何交换。添加 1GB 交换…

构建自己的ChatGPT:从零开始构建个性化语言模型

🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~&#x1f33…

FPGA XDMA 中断模式实现 PCIE3.0 QT上位机视频传输 提供工程源码和QT上位机源码

目录 1、前言2、我已有的PCIE方案3、PCIE理论4、总体设计思路和方案图像产生、发送、缓存XDMA简介XDMA中断模式图像读取、输出、显示QT上位机及其源码 5、vivado工程详解6、上板调试验证7、福利:工程代码的获取 1、前言 PCIE(PCI Express)采…

【微服务系统设计】系统设计基础:速率限制器

什么是速率限制器? 速率限制是指防止操作的频率超过定义的限制。在大型系统中,速率限制通常用于保护底层服务和资源。速率限制一般在分布式系统中作为一种防御机制,使共享资源能够保持可用性。 速率限制通过限制在给定时间段内可以到达您的 A…

java学习路程之篇三、进阶知识、面向对象高级、接口新特性、代码块、内部类、Lambda表达式、窗体、组件、事件

文章目录 1、接口新特性2、代码块3、内部类4、Lambda表达式5、窗体、组件、事件 1、接口新特性 2、代码块 3、内部类 4、Lambda表达式 5、窗体、组件、事件

python 压测 +paramiko 远程监下载日志 +js 测试报告

目录 前言: 关于压测客户端 netty nio 压测端 python tornado 异步框架压测 python 协程压测端 远程监控 js 解析日志 前言: 在软件开发中,压测和测试是非常重要的一个环节,它可以帮助我们更加全面地检测软件中的安全漏洞…

SR04 超声波测距模块

文章目录 前言一、SR04 模块介绍二、设备树设置三、驱动程序四、测试程序五、上级测试及效果总结 前言 超声波测距模块 是利用超声波来测距。模块先发送超声波,然后接收反射回来的超声波,由反射经历的时间和声音的传播速度 340m/s,计算得出距…

剑指offer40.最小的k个数

简直不要太简单了这道题,先给数组排个序,然后输出前k个数就好了。我用的是快排,这是我的代码: class Solution {public int[] getLeastNumbers(int[] arr, int k) {int n arr.length;quickSort(arr, 0, n-1);int[] res new int…

Mysql 简介

Mysql 简介 学习目的 MySQL作为目前最流行的关系型数据库管理系统之一,因其开源免费的特性,成为小型Web应用的重点关注对象。几乎所有的动态Web应用基本都在使用MySQL作为数据管理系统。学习MySQL的目的也是为了更好地理解数据库相关的SQL注入漏洞&…

【性能优化】MySQL百万数据深度分页优化思路分析

业务场景 一般在项目开发中会有很多的统计数据需要进行上报分析,一般在分析过后会在后台展示出来给运营和产品进行分页查看,最常见的一种就是根据日期进行筛选。这种统计数据随着时间的推移数据量会慢慢的变大,达到百万、千万条数据只是时间问…