引言 随着UI自动化测试规模扩大,元素定位失效、页面结构微调、环境波动等问题频发,传统脚本‘一挂即瘫’的脆弱性日益凸显。 自愈测试(Self-Healing Test)技术应运而生——它赋予脚本在运行时自动识别失效定位器、推荐并切换备用选择器、甚至动态修正断言的能力。 本文结合啄木鸟软件测试团队在金融与电商领域23个中大型项目的实战复盘,梳理出自愈测试脚本落地中最常见的5大误区。 误区一:把‘自动重试’当‘自愈’ 这是最普遍的认知混淆。 我们在某电商平台验收测试中发现,自愈引擎将‘加入购物车’按钮(绿色)与‘收藏商品’按钮(同为绿色心形图标,仅尺寸小5%)错误关联,导致关键业务流中断却未报错——因为‘视觉上找到了一个绿色心形’。 下一期,我们将发布《自愈测试成熟度评估模型(ST-Maturity v1.0)》,涵盖从‘手工重试’到‘语义驱动自治测试’的5级演进路径,欢迎关注啄木鸟软件测试公众号获取。
引言 在持续交付与高频迭代的DevOps时代,传统UI自动化测试脚本因界面元素变动(如ID变更、DOM结构调整、动态加载延迟)而频繁失效——平均30%~60%的维护成本消耗在脚本修复上。 ‘自愈测试’(Self-Healing Testing)正成为破解这一瓶颈的关键范式:它赋予测试脚本自主识别元素变更、动态匹配替代定位器、并自动修复或降级执行的能力。 作为啄木鸟软件测试团队近两年落地27个大型金融/电商项目的技术沉淀,我们实测对比了当前主流的5款自愈测试工具,覆盖开源方案与商业平台,力求为测试架构师与自动化负责人提供可落地的选型决策依据。 实测修复延迟仅120ms,完全无侵入(原有Selenium脚本0修改),但自愈率仅63.1%,对复杂Shadow DOM支持有限。适合中小团队快速试点。 Mabl:AI驱动的端到端平台。 我们发现,某工具自愈率95%背后,是32%的用例因反复失败触发5次以上自愈尝试,暴露真实稳定性问题。 向左移,而非向右补:自愈是兜底,非替代。
脚本一夜失效。 据2023年Applitools《自动化测试维护成本报告》显示,企业平均将47%的测试工程时间耗费在脚本修复上,而非新功能覆盖。 而‘自愈测试(Self-Healing Tests)’正从学术概念走向工业级实践:它赋予测试脚本识别异常、自主定位替代元素、动态修正选择器的能力,显著降低维护熵值。 本文聚焦‘开源’这一关键约束,深度评测当前可直接集成、无商业授权风险的5大自愈方案,结合真实项目落地经验,为你厘清技术选型路径。 这也是我们坚持只评测上述5个方案的根本原因。 结语:自愈不是终点,而是测试智能化的新起点 自愈测试脚本的价值,从来不止于减少红色报错。
这大幅降低了编写浏览器自动化脚本的门槛——会描述测试步骤,比会写完整的 Playwright API 调用,门槛低得多。 四、面向 Excel 任务表的全流程自动化方案这是什么: 一种把"任务表 → 测试用例 → 执行脚本 → 执行 → 报告"全流程串联起来的工作方式。 核心机制:这套方案的关键设计是分步骤、可观测——任务表解析成结构化数据,结构化数据生成可读的测试用例文档,测试用例转化成可执行脚本,脚本执行产生带截图的日志,日志渲染成带仪表盘的 HTML 报告。 对测试人的价值:这是最直接解决"脚本编写效率"问题的方案——你不需要为每个测试场景手写 Playwright 代码,只需要用自然语言描述清楚要测什么,整条链路自动完成转化和执行。 如果只是用 AI 工具加速执行,却没有把团队的领域知识结构化沉淀下来,效率提升会停留在"省点打字时间"的层面,很快遇到天花板:工具能帮你更快地写出脚本,但如果脚本本身的定位规范不对、等待策略不对,跑出来的还是脆弱的
本文将详细聊一聊无脚本测试,将其与常规自动化测试区分开来,并讨论如何使用无脚本测试工具来克服软件质量的瓶颈。 什么是无脚本测试 顾名思义,无脚本或无代码测试是一种使用工具而不是编写测试脚本来自动执行测试的方法。 无脚本测试工具可以在测试者浏览功能时,记录在屏幕上显示的信息和操作行为。通常为录制测试脚本即为测试用例的编写测试步骤,该工具将通过记录这些操作来生成相同的测试步骤。 这意味着它很难测试验证码、图形验证等功能。尽管该工具通常不需要脚本测试,但为测试用例添加脚本支持的确可以让测试用例更加灵活和有效。 无脚本测试的优势 与基于脚本的测试相比,无脚本测试具有明显的优势。
前言 Airtest IDE 可以编写完脚本后直接点运行按钮执行脚本,运行完成后会自动生成一个html测试报告 运行脚本 Airtest IDE 运行脚本3种方式 快捷键 f5 运行 点菜单栏 三角形 快捷按钮 菜单-运行 -运行脚本 ? 停止运行(shif+f5) ? 调试部分代码 Airtest 可以支持选择执行部分代码段 ? 查看报告 运行结束后,会自动生成测试报告,点报告按钮(Ctrl+L) ? 查看报告 ?
Katalon Recorder是一款基于界面的自动化测试脚本录制工具,代替了selenium IDE,使用非常简单方便。 ? 5.点击Target下拉框,会发现有很多定位方式,是不是很惊喜?嘻嘻嘻,选择合适的,直接copy用吧。 ? ? Katalon Recorder录制回放 我们来录制一个百度搜索的操作流程,然后回放。 总结:Katalon Recorder可以用来定位、录制脚本、导出脚本等等,更多功能自己去尝试下吧。 ITester软件测试小栈今日分享 分享内容 Python接口测试框架实战与自动化进阶视频及资料 领取方式 微信公众号后台回复:20191013 有图有真相 ? 以上 That‘s all ITester软件测试小栈
XSS漏洞概述XSS简介XSS被称为跨站脚本攻击(Cross-site scripting),由于和CSS(CascadingStyle Sheets)重名,所以改为XSS。 客户端上的JavaScript脚本可以访问浏览器的DOM并修改页面的内容,不依赖服务器的数据,直接从浏览器端获取数据并执行。 XSS<script>alert(/xss/)</script>2.利用HTML标签的属性值(伪协议)5.大小写:<iMg sRc='#'Onerror="alert(/xss/ 本文档所提供的信息仅用于教育目的及在获得明确授权的情况下进行渗透<em>测试</em>。任何未经授权使用本文档中技术信息的行为都是严格禁止的,并可能违反《中华人民共和国网络安全法》及相关法律法规。
检查脚本语法与逻辑首先确认脚本是否存在语法错误或逻辑问题。 Period: 60 秒 Loop Count: Forever定时器添加定时器以模拟用户操作间隔:# 示例:在 JMeter 中添加 Constant Timer Thread Delay: 1000 毫秒 5. 防止脚本异常添加异常处理机制,避免因单个请求失败导致整个测试中断。 生成日志与报告确保脚本能够记录详细日志并生成测试报告。 ='test.log', level=logging.DEBUG)logging.debug(' 测试开始')8.
Katalon Recorder是一款基于界面的自动化测试脚本录制工具,代替了selenium IDE,使用非常简单方便。 Katalon Recorder主要功能如下: 1.录制回放脚本; 2.定位网页元素; 3.转化成WebDriver的脚本; 以下介绍Katalon Recorder的安装及基本使用。 5.点击Target下拉框,会发现有很多定位方式,是不是很惊喜?嘻嘻嘻,选择合适的,直接copy用吧。 ? Katalon Recorder录制回放 我们来录制一个百度搜索的操作流程,然后回放。 3.点击play,即可回放刚录制的脚本,效果如下: ? 是不是很棒棒?接下来,我们再看看Katalon Recorder如何导出脚本。 总结:Katalon Recorder可以用来定位、录制脚本、导出脚本等等,更多功能自己去尝试下吧。
trans.run() for timer in ('response received', 'content transferred'): print '%s: %.5f
""" ################################################################################ Test a directory of Python scripts, passing command-line arguments, piping in stdin, and capturing stdout, stderr, and exit status to detect failures and regressions from prior run outputs. The subprocess module spawns and controls streams (much like os.popen3 in Python 2.X), and is cross-platform. Streams are always binary bytes in subprocess. Test inputs, args, outputs, and errors map to files in subdirectories.
在选择无污染DNS的过程中,免不了要对待选的DNS服务器进行延迟的测试,为了避免每次单独Ping一个地址,所以我整理了一个脚本,用于批量测试目标DNS服务器的延迟。 需要ping3依赖。 保存为*.py文件,通过命令行运行,可替换IP地址为自己想要进行测速的DNS的IP地址,每个DNS的IP地址Ping次数为4,可根据自己需要在脚本中修改。 import asyncio from ping3 import ping from concurrent.futures import ThreadPoolExecutor # 定义要测试的地址列表 1668::1", "185.228.168.9", "185.228.169.9", "76.76.2.1", "78.47.212.211" ] # 定义 Ping 测试函数 return address, "Failed" except Exception as e: return address, f"Error: {e}" # 并发执行 Ping 测试
trans.run() for timer in ('response received', 'content transferred'): print '%s: %.5f
我们进行一个小测试。 1. 首先新建一个 shell 脚本,输出一段文字到 a.txt 文件中。 vim test.sh 脚本内容为: #! 说明测试成功。 学习与巩固: crontab ,shell脚本, tail 监控文件,chmod 添加权限
接着上一篇继续分享 经过上面几篇的了解,现在的yaml文件肯定是不符合测试参数化,主要存在以下问题: 没有相对于的预期结果数据 只支持一种headers,肯定是不够的 没有设计相关值的提取和替换 因此我们需要改进下我们的测试数据的格式 ,不是很完善,但是大部分该有的都有了吧,各种字段的介绍: -testCase 是一个测试用例的开头,是列表里面的一项 description 是测试用例的描述 name 测试接口的描述 method 接口的请求的方法 uri 接口请求路径地址 headers 是请求头 payload 是请求的数据 extract 是要从响应数据里面提取的值,供其他接口或者测试用例使用 validate 测试用例的断言 根据上面的数据格式,我们暂时需要做以下事情 1.重新改写request封装的函数 2.需要设计提取值的规则和提取值的函数 3.需要设计如何使用提取的值的规则和编写提取值之后的数据处理的函数 先把之前写的代码重新整理,把整个工程结构化,结构化后的目录结构如下: 主要目录介绍 common:存放一些工具类,比如日志封装、reqeuests封装等 log:日志的存放目录 testCases :测试脚本的存放目录
一个一个的测试混淆实在太累而且还有延迟。 为此我写了这个批量化测试shell脚本,填写好参数后基本上不用人工干预。 /ml.sh 罗嗦一下 脚本会自动下载一个Termux-api的安装包,请务必安装,不然获取不了短信信息,如果已经安装有可以取消安装。 支持解析ssr连接快速运行 . /ml.sh -b 删除脚本 ./ml.sh -c 如果安装有文字转语音引擎tts可以语音播报 ?
条件测试类型 1. 文件测试 2. 数值测试 3. 字符串测试 4. = >= <=”比较符号来进行数值的比较 实例: [root@docker ~]# test 6 -le 5 && echo 0 ||echo 1 0 #判断6是否小于等于5,如果是返回0 ,否则返回1 [2]+ Done test 64 -gt 63 [root@docker ~]# [ 6 -gt 5 ]&& echo 0 || echo 1 0 #判断6是否大于5,如果大于返回0,否则返回1 [root@docker ~]# [[ 6 = 5 ]]&& echo 0 || echo 1 1 #判断6是否等于5,如果等于返回0,否则返回 1 [root@docker ~]# ((5!
List<String> response = (List<String>) jedis.eval(script, keys, args); assertEquals(5, byte[]> responses = (List<byte[]>) binaryJedis.eval(script.getBytes(), keys, args); assertEquals(5, <T> hasItem(equalTo(expected)); } } 网友写的抢红包的lua脚本 static String tryGetHongBaoScript =
(该项目期望Kafka能够处理上亿级别的MQ消息) 二、测试范围及方法 2.1 测试范围概述 测试使用Kafka自带的测试脚本,通过命令对Kafka发起写入MQ消息和Kafka消费MQ消息的请求。 2.3.2测试方法 在服务器上使用Kafka自带的测试脚本,分别模拟10w、100w和1000w的消息写入请求,查看Kafka处理不同数量级的消息数时的处理能力,包括每秒生成消息数、吞吐量、消息延迟时间 -2.1.0)ubuntu-16.04.5-server-amd64 3.2 测试工具 Kafka压测工具Kafka自带压测脚本 3.3 测试环境搭建 这里仅仅使用单机版的kakfa,为了快速搭建,使用自带的 2181/tcp, 0.0.0.0:9092->9092/tcp youthful_bhaskara 进入kafka的bin目录 root@ubuntu:/opt# docker exec -it 5ced2eb77349 /bin/bash root@5ced2eb77349:/# cd /kafka_2.12-2.1.0/ root@5ced2eb77349:/kafka_2.12-2.1.0# cd bin/ 1.