自动化工具 WEB 自动化工具
背景
使用自动化测试框架编写用例的时候,维护元素信息以及脚本较为麻烦。对应新手来说,编写脚本的能力有限,使用工具会更容易入手。最重要的是可视化操作让我觉得体验舒服。
演示地址
地址:hippo
账号:test
密码:A123456.
首次访问稍慢一些
操作说明
已有 demo 例子,由于部署在服务器,只能够调起服务器的浏览器。
WEB 测试功能介绍
统计图表
首先需要选中项目,后续的测试都是在这个项目下进行。
展示用例/计划的当前数量统计,一周内新增统计,一周内执行结果统计。

项目管理
管理不同的项目,创建完一个项目后,可以在统计图表选中这个项目,来展开后续的测试。

元素管理
元素库:元素的分类用树形结构管理,选中节点后展示其下面的元素列表。
元素列表:管理当前分类下的所有元素。

用例管理
管理页面
场景管理:用例的分类用树形结构管理,选中节点后展示其下面的用例列表。
用例列表:管理当前分类下的所有用例。

新建/编辑页面
点击新建或编辑会跳转到该页面,展示详细信息。
用例名称:用例的标识名称。
所属分类:用例库下的分类名称。
用例等级:用例的等级。
用例描述:用例的详细信息。
性能模式:性能模式能减少内存和 cpu 的占用,启用后程序在后台运行,不调起浏览器。
出现异常截图:执行后异常的步骤会截图保存,在报告内可以查看。
结束关闭浏览器:执行结束会关闭浏览器。
忽略异常并继续执行:步骤出现异常不会暂停执行,会一直执行下面的步骤。
数据驱动:用例用数据驱动的方式执行。上传 EXECL 文件后,文件内容的行数=执行的次数,行名称=步骤变量名,每次执行都会按每行内容替换步骤中的变量值。

新建/编辑步骤
步骤名称:自定义输入步骤的概要信息。
操作类型:浏览器操作、元素操作、鼠标操作、输入操作、断言操作。
操作对象:元素库选择或者直接输入定位表达式。
启用状态:启用的会执行,不启用的会跳过。
行背景色:选择后列表行会显示该颜色。

用例引用
可以引用当前项目下所有的用例,比如我们常需要用到前置操作的登录,或后置操作的登出,可以用过它来引用。
引用完成后会关闭引用对话框且该引用在列表最后一行显示,可以通过行拖拽功能自由调整位置,用例步骤的执行顺序是从上到下的。
注意:用例 A 引用了用例 B,如果用例 B 步骤变了,需要在用例 A 删除用例 B,再重新引用用例 B。

场景变量
管理当前用例下所用到的变量。
字符串类型的变量,引用的方式为 ${变量名};定义为全局的变量后,则在当前项目任何用例下都能使用。当前项目下变量名不能重名。
例:当前有个 变量名称为 group 在步骤中使用 ${group},在后续执行中会替换变量值 “测试部”。

立即执行
立即执行后,前端页面会进入 loading 状态来等待用例的执行,执行完成会打开全屏测试报告对话框。

执行计划
新建/编辑页面
点击新建或编辑会跳转到该页面,展示详细信息。
计划名称:计划的标识名称。
计划描述:用例的详细信息。
性能模式:性能模式能减少内存和 cpu 的占用,启用后程序在后台运行,不调起浏览器。
出现异常截图:执行后异常的步骤会截图保存,在报告内可以查看。
结束关闭浏览器:执行结束会关闭浏览器。
忽略异常并继续执行:步骤出现异常不会暂停执行,会一直执行下面的步骤。
异常告警:开启告警后可选择钉钉群发送告警消息,选择 @ 联系人后,输入手机号码用英文逗号隔开。

用例引用
与用例新建编辑页的引用一致,区别在于用例的新建编辑不光能引用其他用例,也能新建步骤,而计划内只能引用用例。
立即执行
立即执行后,前端页面会进入 loading 状态来等待用例的执行,执行完成会打开全屏测试报告对话框。
调度执行
依赖 xxl-job 任务调度中心去运行计划,xxl-job 的具体功能请参阅它的官网介绍,官方文档地址:分布式任务调度平台XXL-JOB。
调度执行:点击调度执行后,浏览器会打开新标签页,并打开调度平台登录页,并复制当前计划的 id(在任务参数输入框粘贴)。

任务调度中心账号/密码 :admin/123456
操作步骤:登录任务调度中心 --> 任务管理 --> 新建或更新任务 --> 任务参数输入框粘贴计划 id。启用任务会根据 cron 调度,执行一次则立马执行。执行完成后,可在测试报告列表页处查看执行人为 xxl-job 的记录。

测试报告
用例执行、计划执行、调度计划执行后会生成相应的测试报告,点击报告名称可以查看报告详情。

总结
也算初步完成了该工具,目前还是自己在测试使用,边使用边改问题也相对稳定了,之后也会持续更新。稳定了,把代码整理好会开源。
相关文章:
自动化工具 WEB 自动化工具
背景 使用自动化测试框架编写用例的时候,维护元素信息以及脚本较为麻烦。对应新手来说,编写脚本的能力有限,使用工具会更容易入手。最重要的是可视化操作让我觉得体验舒服。 演示地址 地址:hippo 账号:test 密码&am…...
AutoGPT 安装指南,使用避坑要点
最近, AIGC 中最火的可能就当属于 AutoGPT 了吧,首先简单介绍一下AutoGPT 背景 AutoGPT 是基于 ChatGPT API 接口开发,项目首推 GPT-4 模型,但 OpenAI 账号 API 只有 gpt-3.5-turo 权限同样也可以使用。 项目在 github 上获取的…...
低调且强大——JNPF低代码平台
前言 先说说很多人为什么要用低代码平台。大部分的反馈是“懒”,其次就是后台管理这东西吧,来来回回就那些东西,查询/表单/表格/弹窗之类的,加上一些增删改查的逻辑。很多人表示,呆过的公司好几家了,后管的…...
《商用密码应用与安全性评估》第二章政策法规2.4商用密码应用安全性评估工作
商用密码应用安全性评估体系发展历程 第一阶段:制度奠基期(2007年11月至2016年8月) 第二阶段:再次集结期(2016年9月至2017年4月) 第三阶段:体系建设期(2017年5月至2017年9月&…...
MySQL 字段为 NULL 的5大坑,99%人踩过
数据库字段允许空值(null)的问题,你遇到过吗? 在验证问题之前,我们先建一张测试表及测试数据。 数据库字段允许空值(null)的问题,你遇到过吗? 在验证问题之前,我们先建一张测试表及测试数据。 构建的测试…...
深入理解计算机系统--理解编译器编译的过程
前言 大家在学习C语言的时候,相信对编译器这个词并不会感到陌生。我们也会知道编译器编译的过程是:预处理-》编译-》汇编-》链接。这篇文章主要介绍这四个过程中,编译器究竟做了那些工作,它是如何让一份高级程序转换成机器语言的…...
实现PXE批量网络装机及kickstrat无人值守安装(富士山终究留不住欲落的樱花)
一、PXE概述和部署PXE批量装机 1.PXE简介 PXE(预启动执行环境,在操作系统之前运行)是由Intel公司开发的网络引导技术,c/s架构,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或者整个操作系统…...
4.23日报
MySQL 索引是怎么实现的? 索引是满足某种特定查找算法的数据结构,而这些数据结构会以某种方式指向数据,从而实现高效查找数据。 具体来说 MySQL 中的索引,不同的数据引擎实现有所不同,但目前主流的数据库引擎的索引都…...
【数据治理】数据治理方面的证书有哪些?
目前数据治理领域最专业的职业认证有: 中文版: ①DAMA国际CDGA数据治理工程师、DAMA国际CDGP数据治理专家 (先获得CDGA认证才能申请CDGP认证考试) ②DGSP数据治理与管理认证 英文版: ③CDMP数据管理专业人士 一、…...
Let’s Make C++ Great Again——set与vector
文章目录 set常用的set方法:set实现去重的例子:自定义比较函数的例子,按照字符串长度从小到大排序:使用set容器求两个集合的交集的例子: vector创建vector对象插入和删除元素获取vector的大小和容量检查vector是否为空…...
Nginx+Tomcat负载均衡、动静分离
一.Nginx负载均衡实现原理 Nginx实现负载均衡是通过反向代理实现 1、 反向代理原理 2、反向代理的概念 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服…...
SpringCloud入门实战(七)-Hystrix服务熔断
📝 学技术、更要掌握学习的方法,一起学习,让进步发生 👩🏻 作者:一只IT攻城狮 。 💐学习建议:1、养成习惯,学习java的任何一个技术,都可以先去官网先看看&…...
百度平地起“雷”,突然爆出的QPS数据意味着什么?
鲁迅先生1923年在北师大发表了著名的演讲《娜拉走后怎样》,其中的提问与思考方式振聋发聩,直到今天也依旧有效。面对很多产业现象、技术趋势,我们也不妨多问几个“之后怎样”。 比如说,自ChatGPT爆火之后,中国各个互联…...
电子模块|外控集成 LED 光源 WS2812模块---硬件介绍和stm32驱动
电子模块|外控集成 LED 光源 WS2812模块 模块简介模块特点机械尺寸单线归零码通讯方式24bit 数据结构 stm32 驱动 模块简介 WS2812是一个集控制电路与发光电路于一体的智能外控LED光源。其外型与一个5050LED灯珠相同,每个元件即为一个像素点。像素点内部包含了智能…...
Jenkins+Python自动化测试持续集成详细教程(全网独家)
目录 一、前言 二、环境准备 三、创建Jenkins Job 四、编写Python自动化测试脚本 五、测试报告生成与展示 六、持续集成流程优化 七、实战演练 八、常见问题及解决方案 九、结论 一、前言 Jenkins是目前最为流行的CI/CD工具之一,它可以支持多种语言和技术…...
运维监控工具PIGOSS BSM扩展指标介绍
PIGOSS BSM运维监控工具,除系统自带指标外,还支持添加SNMP扩展指标、脚本扩展指标、JMX扩展指标、自定义JDBC指标等,今天本文将介绍如何添加SNMP扩展指标和脚本扩展指标。 添加SNMP扩展指标 前提:需要知道指标的oid 例子ÿ…...
一些前端问题2
1.业务场景中需要嵌入公司其他行业线的页面,这种不使用 iframe 该怎么办? 答:理论上应该让他们给你做个组件出来,但是如果实在没别的办法,就使用 iframe 吧。 2.jquery ajax 同步请求的原理是? 目前用 axios 库&…...
Moviepy模块之视频添加图片水印
文章目录 前言视频添加图片水印1.引入库2.加载视频文件3.加载水印图片4.缩放水印图片大小5.设置水印的位置5.1 相对于视频的左上角5.2 相对于视频的左下角5.3 相对于视频的右上角5.4 相对于视频的右下角5.5 相对于视频的左中位置5.6 相对于视频的正中位置5.7 相对于视频的右中位…...
day35—编程题
文章目录 1.第一题1.1题目1.2思路1.3解题 2.第二题2.1题目2.2思路2.3解题 1.第一题 1.1题目 描述: 今年公司年会的奖品特别给力,但获奖的规矩却很奇葩: 首先,所有人员都将一张写有自己名字的字条放入抽奖箱中;待所有…...
Linux安装Nginx
前言 提示:这里可以添加本文要记录的大概内容: Linux安装Nginx的详细步骤。 一、安装Nginx的相关依赖 1、安装gcc,PCRE pcre-devel,zlib,OpenSSL, 提示:安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境。 PCRE(…...
Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...
【位运算】消失的两个数字(hard)
消失的两个数字(hard) 题⽬描述:解法(位运算):Java 算法代码:更简便代码 题⽬链接:⾯试题 17.19. 消失的两个数字 题⽬描述: 给定⼀个数组,包含从 1 到 N 所有…...
聊聊 Pulsar:Producer 源码解析
一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...
C++使用 new 来创建动态数组
问题: 不能使用变量定义数组大小 原因: 这是因为数组在内存中是连续存储的,编译器需要在编译阶段就确定数组的大小,以便正确地分配内存空间。如果允许使用变量来定义数组的大小,那么编译器就无法在编译时确定数组的大…...
《C++ 模板》
目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板,就像一个模具,里面可以将不同类型的材料做成一个形状,其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式:templa…...
API网关Kong的鉴权与限流:高并发场景下的核心实践
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 引言 在微服务架构中,API网关承担着流量调度、安全防护和协议转换的核心职责。作为云原生时代的代表性网关,Kong凭借其插件化架构…...
微服务通信安全:深入解析mTLS的原理与实践
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、引言:微服务时代的通信安全挑战 随着云原生和微服务架构的普及,服务间的通信安全成为系统设计的核心议题。传统的单体架构中&…...
aardio 自动识别验证码输入
技术尝试 上周在发学习日志时有网友提议“在网页上识别验证码”,于是尝试整合图像识别与网页自动化技术,完成了这套模拟登录流程。核心思路是:截图验证码→OCR识别→自动填充表单→提交并验证结果。 代码在这里 import soImage; import we…...
