【自动化测试】如何提高自动化脚本的健壮性和稳定性?

news2024/10/6 16:20:19

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

配置环境引起

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

非配置环境引起

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

提高稳定性

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

解决方案

  1. 为了能重复运行脚本,应在运行之前、以及运行完后进行数据清理,分为前置清理、后置清理
  2. 数据尽量不要写死,固化的数据容易被别人修改,尽量目前的执行单元做到数据的可配置化,做到集中维护,也可以通过依赖其他接口的动态生成,这样避免原来写死的数据失效。
  3. 脚本异常处理,加入失败重跑机制,如遇到失败,设置重试次数
  4. 提升环境稳定性,包括自身环境稳定性和第三方系统环境稳定性(将测试环境独立出来,可灵活配置运行环境)
  5. Windows、Linux环境下文件路径要做兼容,因为两个系统获取文件路径的方式不一致
  6. 异常捕获处理,有异常跳过、或标记
  7. 确保用例的完整性、独立性,可耦合,可独立运行
  8. 依赖第三方服务的接口需要设置合理的超时时间
  9. 持续验证,保持一定的运行频率,比如每日巡检等,避免因长时间未运行和自身脚本成熟度不够高,导致阶段性维护时间过长。

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

软件测试面试文档

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

在这里插入图片描述

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

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

相关文章

python 爬虫的开发环境配置

1、新建一个python项目 2、在控制台中分别安装下面三个包 pip install requests pip install beautifulsoup4 pip install selenium/ 如果安装时报以下错误: raise ReadTimeoutError(self._pool, None, "Read timed out.") pip._vendor.urllib3.exceptio…

SegGPT: Segmenting Everything In Context论文笔记

论文https://arxiv.org/pdf/2304.03284.pdfCodehttps://github.com/baaivision/Painter 文章目录 1. 背景2. Motivation3. Method3.1 In-Context Coloring3.2 Context Ensemble3.3 In-Context Tuning 1. 背景 在Painter中,将各种密集预测任务视为一种着色问题。 在…

实用前端调试技巧

调试是项目开发中非常重要的环节。掌握一些调试技巧,不仅能帮助我们定位到问题,还能提升我们的开发效率。本文从两个场景来介绍调试技巧: 代码报错。 逻辑出错。 调试代码报错的技巧 技巧1: 读懂报错信息 大部分情况下,能读懂…

day5_C++

day5_C 继承 代码思维导图 继承 代码 #include <iostream>#define PI 3.14using namespace std;class Shape {protected:double perimeter;double area;public:Shape() {cout<<"Shape::无参构造"<<endl;}Shape(double perimeter,double area):per…

21 搜索二维矩阵 II

搜索二维矩阵 II 题解1 对角线上下循环搜索&#xff08;超时&#xff09; 生气&#xff01;&#xff01;无脑循环都不超时题解2 无脑循环题解3 学习STL(二分查找) 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性&#xff1a; 每行…

通过Power Platform自定义D365 CE 业务需求 - 3. 使用Microsoft Power应用程序

Microsoft Power Apps是一个用于开发应用程序的无代码、无代码平台。Power应用程序可以在Dataverse之上配置为数据库。尽管您可以连接Salesforce、OneDrive、Dropbox等多种云源,但Dataverse也可以用作内部数据库来构建应用程序,并通过连接器连接其他数据源进行集成。 Power应…

Redis 初识与入门

1. 什么是Redis Redis 是一种基于内存的数据库&#xff0c;对数据的读写操作都是在内存中完成&#xff0c;因此读写速度非常快&#xff0c;常用于缓存&#xff0c;消息队列、分布式锁等场景。 Redis 提供了多种数据类型来支持不同的业务场景&#xff0c;比如 String(字符串)、…

使用CoreOS来部署一个Kubernetes集群,包括必要的步骤和关键概念

文章目录 什么是CoreOS&#xff1f;准备CoreOS节点安装Kubernetes初始化Kubernetes控制平面加入其他节点设置kubectl配置安装网络插件验证集群部署应用程序结论 &#x1f388;个人主页&#xff1a;程序员 小侯 &#x1f390;CSDN新晋作者 &#x1f389;欢迎 &#x1f44d;点赞✍…

python 虚拟环境调用allure报错:FileNotFoundError: [WinError 2] 系统找不到指定的文件

一、遇到的问题 python代码调用命令行 allure命令报错&#xff0c;提示找不到allure这个命令。python虚拟环境中已经安装了pytest-allure 代码如下&#xff1a; import subprocessif __name__ "__main__":# retcode pytest.main()subprocess.call([pytest, --al…

SpringBoot整合Canal实现MySQL与ES数据同步

文章目录 SpringBoot项目引入Canal依赖配置文件项目结构设置监听类其余类、接口内容启动类实体类Controller类Mapper接口Serice接口 运行测试 开始之前请确认docker中已运行mysql与canal容器&#xff0c;并完成了监听binlog配置 未完成可移步&#xff1a; Docker部署Canal监听…

领域驱动设计:事件风暴构建领域模型

文章目录 事件风暴需要准备些什么&#xff1f;如何用事件风暴构建领域模型&#xff1f; 事件风暴是一项团队活动&#xff0c;领域专家与项目团队通过头脑风暴的形式&#xff0c;罗列出领域中所有的领域事件&#xff0c;整合之后形成最终的领域事件集合&#xff0c;然后对每一个…

共享股东模式:一种新型的商业模式,让你轻松创业

你是否想过拥有自己的事业&#xff0c;但又觉得创业风险太大&#xff0c;资金太少&#xff0c;人脉太弱&#xff1f;你是否想过利用自己的消费能力&#xff0c;获得更多的收益&#xff0c;而不仅仅是消费者&#xff1f;你是否想过成为一个有影响力的人&#xff0c;为社会创造价…

【STM32】影子寄存器

不可操作但是真正起作用的寄存器是影子寄存器 定时器框图中&#xff0c;有些寄存器下有个阴影 这些阴影的表示这些寄存器存在影子寄存器。 图中也有对这些影子的说明&#xff0c;在U事件时传送预装载寄存器至实际寄存器。 有阴影的寄存器(AutoReloadRegister)&#xff0c;表…

【OpenCL基础 · 二 】OpenCL架构

文章目录 前言一、OpenCL平台模型二、OpenCL执行模型1.上下文2.命令队列3.内核的执行——NDRange 三、OpenCL存储器模型1.存储器区域2.存储器对象3.主机与设备的数据交互 总结 前言 通过【OpenCL基础 一】因源&#xff0c;我们了解了OpenCL的起源和应用场景。在异构并行平台上…

HTTP文件服务

在工作中&#xff0c;往往会需要将文件同时共享给很多台电脑。 本篇介绍HHDESK的HTTP文件服务功能&#xff0c;通过浏览器&#xff0c;将本地资源共享给任意主机。 1 共享文件 首页——资源管理——服务端——“”&#xff0c;在弹出框中选择HTTP文件服务。 填写各项内容。…

计算一个四边形差值结构的稳定性

( A, B )---3*30*2---( 1, 0 )( 0, 1 ) 让网络的输入只有3个节点&#xff0c;AB训练集各由5张二值化的图片组成&#xff0c;让A中有4个1&#xff0c;B中全是0&#xff0c;统计迭代次数并排序。 其中有6组数据 差值结构 迭代次数 构造平均列 L E - - - 34838.43 1 - …

Swing程序设计(3)JDialog窗体

文章目录 前言一、JDialog窗体的介绍二、JDialog窗体的使用 1.JDialog的常用构造方法2.实例展示及分析总结 前言 JDialog窗体是窗体中的另一种类型的窗体&#xff0c;指对话框窗体。与JFrame窗体类似&#xff0c;绝大部分对于JFrame窗体使用的方法&#xff0c;对于JDialog窗体也…

多元共进|整合开发者社区资源,共建繁荣生态

谷歌致力于构建多元社区 促进行业内更多交流和联系 一起来了解 2023 Google 开发者大会上 谷歌如何以点及面 将资源辐射至开发者、数字人才和初创企业 持续赋能开发者社区生态 谷歌全球开发者社区计划的目的是与开发者同在&#xff0c;实现双向对话、互动和参与&#xff0…

Houdini19 命令行启动环境配置

在自动化流程中&#xff0c;通常都是从外部命令行启动 Houdini&#xff0c;而不是在软件里进行烘培和输出。完全体是通过类似 Jenkins 等自动化工具来启动 Houdini 自动生成流程。 我使用的 Houdini 版本为 19.5.640&#xff0c;对应的 Python 版本为 3.9 。 1、配置开发环境 …

Gitlab仓库部署

Gitlab仓库部署 一、Gitlab的概述1、gitlab介绍2、gitlab主要功能3、gitlab和github的区别 二、部署环境1、安装依赖环境2、安装Postfix邮箱3、Gitlab优势4、Gitlab工作流程 三、Gitlab部署过程1、Yum安装Gitlab2、配置gitlab站点URL3、启动并访问Gitlab 四、Gitlab具体操作1、…