测试老鸟总结,自动化测试难点挑战应对方法,我的进阶之路...

news2024/11/27 18:38:46

目录:导读

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


前言

Python自动化测试:https://www.bilibili.com/video/BV1MS4y1W79K/

先说下现常用的UI自动化测试配套框架:
web自动化测试:Python+selenium4+pytest+POM+allure+Jenkins;
app自动化测试:Python+appium+POM+pytest+allure+Jenkins;

识别动态元素

传统的测试自动化框架通过 CSS 属性或其在页面上的位置来识别应用程序中的可视元素。当这些属性在正常的开发活动发生变化时,通常会破坏相关的 UI 测试用例的有效性和稳定性。

修复损坏的测试通常称为维护,通常维护成本随着自动化项目的复杂程度和用例数量的增加而指数增加。对传统开源框架的维护可能会消耗团队高达 40% 的优质资源。

识别动态元素的几种方法包括使用备用定位、相对定位、模糊定位或计算机视觉。

最稳定的测试来自人工智能驱动的工具,这些工具可以深入检查和理解应用程序的元素、属性以及元素之间的关系。如果应用程序从测试运行中学习并调整以反映应用程序随时间的变化,那就更好了。

同步测试

当测试在自动化平台中执行时,测试步骤的时间必须与应用程序的时间相匹配,否则测试将找不到正确的元素。

使测试和应用程序保持同步的技术包括添加基于时间的等待(可以是每个步骤或测试)和基于事件的等待,以防止在事件发生之前执行下一步操作或者断言。可以参考Selenium等待:sleep、隐式、显式和Fluent

但是,添加等待会减慢执行速度。关键是添加尽可能少的等待以实现所需的稳定性,同时尽量减少对速度的影响。

部分公司正在尝试使用计算机视觉来识别页面何时准备好进行下一步以处理这些技术。但是,在该技术成熟之前,还是需要使用不同的基于时间、基于事件和条件等待的选项。

跨浏览器测试

关于跨浏览器测试的重要性的文章很多,但许多开发团队只关注 Chrome。

为什么?
其中一个重要大原因是:构建跨浏览器兼容测试框架和系统成本很高。

用户以不同的浏览器访问网站,那么应该至少执行跨浏览器测试覆盖主流的浏览器和系统组合矩阵,以确保网站在大部分用户使用时能够正常运行。

有两个选项可以让这更容易:使用具有内置跨浏览器测试网格的工具,或者将测试与设备场或虚拟测试网格服务集成。前者往往更简单、更便宜,而后者将为您提供更广泛的设备和浏览器类型配置。

随机弹出窗口

弹出窗口是可能时造成自动化测试失败的最大的困扰。因为弹框的类型多种多样,通常难以不测,会阻止测试的顺利运行。

许多工具要求编写测试用例时候知道弹出窗口的位置,切换到活动窗口,将其关闭,然后再切换回应用程序的主窗口。虽然这些对预期的警告弹出窗口很有帮助,但它们对来自集成工具的随机弹出窗口没有帮助,这些工具可能会阻止元素直到关闭。

对于那些,需要寻找在每个步骤之前搜索弹出窗口的解决方案,然后通过关闭/取消来处理它们。通常这种问题在编码阶段推行统一编码规范解决会具有更高的roi。

测试报告

通过/失败报告并不能让所有人都理解测试的结果。随着添加更多测试、测试类型(烟雾、回归等)以及用户评估结果,它的价值会继续降低。较大的项目需要更复杂的报告,以帮助说明质量的整体状态和方向。

寻找易于在团队中频繁运行和共享的内置报告,例如每周一次。
通过过滤和排序来寻找灵活性,以创建不同视图。测试报告还需要提供访问更新详细的测试信息的功能。

故障排除

当测试失败发生时,需要快速诊断它们,排除故障。这些工具应该使团队中的任何人都可以轻松确定测试失败的原因。团队还需要工具来帮助确定工作的优先级并指出可能影响多个测试的重复错误。

寻找在每个测试步骤中提供之前/之后屏幕截图而不需要额外编码的工具。视频可能会有所帮助,但加载速度较慢,并且通常无法快速查明问题所在。

网络和控制台日志可能有利于额外的诊断,但应自动包含在测试结果中,而不是单独执行任务。

高级工具不仅会告诉您它在哪里坏了——它们还会告诉你它为什么坏了。智能工具还可以通过汇总常见错误并显示测试的最近结果历史记录来帮助对工作进行分类。

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

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

每一个成功者都有一颗不屈不挠的心,因为他们相信,只要坚持奋斗,就会在终点迎来胜利的喜悦。你也可以成为那个拥有勇气和毅力的人,坚定地朝着目标前行,终将收获成功的果实。

只有在追寻梦想的道路上努力奋斗,才能让生命不留遗憾。不管前方有多少困难和挑战,都要保持信念和毅力,坚持向前,相信未来会更美好!

你的拼搏与努力,终将化作成功的喜悦。永远不要停止前进,因为只有不断挑战自我的人才能看到更广阔的世界。相信自己,坚定信念,你一定能够实现心中所想!

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

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

相关文章

Redis 高级数据结构 HyperLogLog

介绍 HyperLogLog(Hyper[ˈhaɪpə(r)])并不是一种新的数据结构(实际类型为字符串类型),而是一种基数算法,通过HyperLogLog可以 利用极小的内存空间完成独立总数的统计,数据集可以是IP、Email、ID等。如果你负责开发维护一个大型的网站,有一天…

Vue.js 如何进行打包部署

Vue.js 中的打包部署 Vue.js 是一款流行的前端框架,它提供了一种简单、灵活的方式来构建用户界面。在开发完成后,需要对 Vue.js 应用程序进行打包部署,以便在生产环境中使用。本文将介绍 Vue.js 中的打包部署以及如何进行打包部署。 打包部署…

运维小白必学篇之基础篇第十七集:NFS和DHCP实验

NFS和DHCP实验 目录 NFS和DHCP实验 环境配置: 实验题1:实现NFS服务 实验题2:实现DHCP服务 实验作业: 计算机1配置如下:(计算机名为姓名首拼,例hy01,hy02...)基础环…

为什么初学者都先学C语言?

不少高校选择C语言,主要C语言是一种相对底层的语言,学习它可以让学习者更好的理解计算机的基本原理和编程的基础概念,比如变量、函数、指针等。这些基础知识对于理解其他高级语言和解决复杂的编程问题都非常重要。 另外就是C语言对算法和数据…

最小化微服务漏洞

最小化微服务漏洞 目录 本节实战 实战名称💘 案例:设置容器以普通用户运行-2023.5.29(测试成功)💘 案例:避免使用特权容器,选择使用capabilities-2023.5.30(测试成功)💘 案例:只读挂载容器文件…

Redis进阶:主从复制、集群搭建

Redis进阶 1. 主从复制机制1.1 复制原理1.2 配置“一主多从”试验主从复制1)为每个Redis进程提供配置文件2)分别在不同客户端启动Redis服务3)配置服务器成为某主机的下属从机 1.3 不同模式1.3.1 一主二仆1.3.2 薪火相传1.3.3 反客为主 1.4 哨…

在京东做外包的那些日子....

不知不觉已经在京东做了两年外包,最近收到不少朋友私信,说马上面临就业,在找工作的过程中,有不少软件测试的外包公司给我打电话让去面试,究竟要不要去?这篇文章给大家说说我这2年的外包经验,希望…

【Java基础学习打卡01】计算机概述

目录 引言一、计算机是什么?1.计算机vs计算器2.计算机定义 二、计算机发展简史三、计算机分类四、计算机基本工作原理1.冯诺依曼2.冯诺依曼原理 总结 引言 其实我们在学习Java编程之前应该要对计算机有所了解,这里的了解不是说我们日常接触电脑就算是了…

机器视觉初步2:机器视觉基础知识

本节概况 1.机器视觉的定义2.机器视觉系统的工作流程3.机器视觉的组成视场和最大像面 1.机器视觉的定义 什么是机器视觉,其中美国的一种定义为: “机器视觉是研究如何通过光学装置和非接触式传感器自动地接收、处理真实场景的图像,以获得所需…

前端使用tailwindcss 快速实现主题切换方案

使用Tailwind CSS在黑暗模式下为你的网站设计样式。 现在,黑暗模式是许多操作系统的第一流功能,为你的网站设计一个黑暗版本以配合默认设计,变得越来越普遍。 为了使这一点尽可能简单,Tailwind包括一个暗色变体,让你…

POWERBUILDER基础学习提纲

Chengg0769 2012年 版权信息保留: www.mis2erp.com http://blog.csdn.net/chengg0769 http://www.haojiaocheng.cc 这当时是给列给一位因伤休养的朋友。他有一段难捱的时间,想学习学习。这样复出之后也不至于工作无望或者浪费这段时间。 在SQL2000基础…

什么是API接口测试

什么是 API ? API 是“应用程序编程接口”的缩写,是一种允许不同应用程序之间相互通信和交换数据的接口。就好像在餐厅点餐一样,你只需要告诉服务员你想要的食物,而不需要了解厨房中的具体操作,服务员会把你的订单传递…

【PyQt5】(02)Qt Designer:快速设计GUI界面的利器

系列文章目录 【PyQt5】(01)PyQt的详细介绍 文章目录 系列文章目录前言一、安装Qt Designer二、Qt Designer的基本用法2.1 新建窗体2.2 添加部件2.3 编辑属性2.4 布局管理2.5 设置样式2.6 保存文件 三、将UI文件转化为Python代码并显示3.1 使用uic将UI文…

请问一下java在线编程的网站有哪一些?

前言 下面为大家整合了一些Java在线编程的的网站,个人认为都是挺好用的,整合不易,希望大家能顺手留下点赞和收藏! 废话少说,我们直接进入正题: 1、菜鸟工具 菜鸟工具的这个在线编程工具页面很为简洁&…

linux查看/修改某个进程运行的CPU核

1.ps -eF #查看fwd进程运行在哪个cpu核上 [rootCENTOS57 rpm]# ps -eF | grep fwd 2.top命令 (1)top (2)按f键可以选择下面配置选项 P Last Used Cpu (SMP) (3)Esc 退回到top界面可以看到多了一列进程所在cpu信息 3.pidstat命令 查看进程使用cpu情况,如果绑定了多…

CH32V3xx RT-Thread下的ethernet调试及问题记录

目录 1、CH32V3xx 以太网模块简介2、TCP Client 程序2.1 WCHNET库2.1.1 添加WCHNET2.1.2 以太网配置2.2 TCP Client代码2.3 测试结果3、调试过程中的一些问题1、CH32V3xx 以太网模块简介 CH32V3xx MCU的以太网收发器是微控制器的一个重要高速高速通讯外设,集成了千兆的MAC(媒体…

堆积如山:探索数据结构中的堆

前言 欢迎来到小K的数据结构专栏的第十一小节,本节将为大家带来堆的详解并带来堆题目的讲解(✨当然也为大家准备了完整的源码 )~希望你看完之后,能对你有所帮助,不足请指正!共同学习交流 🐾 目录…

排查一次nacos动态配置不生效

一、问题描述 新需求需要使用到nacos动态配置,但是开发完成之后联调过程中发现动态配置没有生效。 二、问题排查 首先在本地测试,发现启动服务后修改nacos配置确实不生效,在查看启动日志时发现服务启动时打印了下面这样的日志。这里是在配…

Blender3.2使用python脚本命令的三种方式, 以及源码示例

本文环境系统OS(Win10) 方式一,在Script(脚本)功能里面的Console(控制台输入python代码)。 如下图: 对应的三句代码是: print("Hi, blender.")import bpybpy.ops.mesh.primitive_cube_add(enter_editmodeFalse, alignWORLD, location(0,0, …

ModBus通信详解

Modbus协议包括ASCII、RTU、TCP等,并没有规定物理层。此协议定义了控制器能够认识和使用的消息结构,而不管它们是经过何种网络进行通信的。标准的Modicon控制器使用RS232C实现串行的Modbus。Modbus的ASCII、RTU协议规定了消息、数据的结构、命令和就答的…