测试自动化平台

2023-10-29

https://mp.weixin.qq.com/s/WU5h8FW6BT5YZtlsSuCIcw



「摘要」随着近几年国内IT行业高速发展,对测试工程师的要求也越来越高,其作用也越来越重要,但很多测试工程师也迎来了个人发展的瓶颈,下一步该向哪个方向发展,该如何发展?

本文将概述测试工程师的现状及发展方向,并着重介绍测试开发工程师的发展及所需具备的技能,以及本部门搭建的测试平台的概况和意义。


一、测试工程师的现状


很多测试小伙伴在工作中有时会比较迷茫,不知该怎样突破瓶颈,更好的发展

那么测试人员究竟该如何打破瓶颈继续向上提升呢?如果你苦于不知所措,又满怀斗志向上的话,不妨一起聊聊。测试职业发展有典型的三种方向:

  • 管理方向

  • 技术型方向

  • 转行

在此重点说下技术型方向的发展。曾几何时,提的bug被否认而倍感无力;曾几何时,遇到一个偶发复现的bug,到上线了都不知道该怎么复现;曾几何时,面对没有前端页面的测试任务,不知该从哪下手测试;曾几何时,面对每天重复繁琐的测试工作,恨不得有个机器人来帮忙。

依稀记得,有天发现一个bug,于是远程debug,一行代码一行代码的走,终于定位到是数组下标越界了,提出bug并附上断点定位的代码截图,开发看后瞬间改了,自此赢得开发不一样的认可。那么懂代码就算是测试开发工程师吗,答案是否定的,那究竟怎样才能做一名测试开发工程师,有哪些优势,和开发的区别又是什么呢?



二、测试开发工程师的作用



对测试开发工程师来说,看懂代码,熟练使用测试工具,能做ui、接口、性能的测试,具备测试经验和测试思想逻辑是基本要求;既要会业务功能测试,又要能做代码层接口及单元测试,更重要的是通过能力和经验的积累,能搭建适用于技术研发团队的工具平台,以更好的降低公司成本和提高工作效率。在这样的理念下我们部门按照软件的生命周期,自主研发了整套的测试平台:

  • 源代码监控分析平台,配置化平台实现对源代码进行系统化、规则化的全面覆盖测试,通过智能规则模型的有效过滤,及早发现问题,提高项目质量。

  • 接口自动化平台,不用写一行代码就可完成对接层的测试,完美支持http和jsf接口,并生成美观可视化的报告

  • UI自动化平台,让不懂代码的小白测试人员便捷快速的上手ui自动化测试工作,以往需要自己写代码,现在直接在页面维护一些元素即可

  • 测试工具平台,现已涵盖十几个大的业务系统,几十个便捷的功能,可快速、便捷的产生和查询测试数据,减少测试人员的联调时间和营造复杂场景数据的时间。上线时间不长,使用频次近3万,大大方便了开发、测试和产品人员。

  • BUG监控分析平台通过对bug大数据进行分析、归类、汇总的智能处理,采用图表方式更加简洁明了的查看项目质量和进度;




三、测试开发工程师的必修课程



如何才能成为一名真正的测试开发工程师,需要具备哪些硬技能呢?

一、具备一定测试经验。只有设身处地的经历过测试人员的痛点和难点,才能切实解决他们的问题。

二、会使用常用重要的测试工具。比如性能测试常用的Loadrunner、jmeter;ui自动化常用的selenium;单元测试常用的testng、junit;安全测试常用的appscan,js注入,xss注入,sql注入等等。

三、具备测试工具开发能力。下面介绍一些主流的技术栈:

  • 测试工具系统框架搭建:1)java+maven+SpringMVC ;2)python+django

    对于第一种框架,最好创建分层化的多模块工程,以便更好的设计代码框架和结构。通常dao层主要是和数据库关联;web层是controller,是前端和服务层的衔接;service层提供一些公共服务或业务处理逻辑。

Maven工程有了之后,运用当前主流的框架-springMVC,将前后端数据库关联起来。

对于无代码基础,想入门测试开发的小伙伴,可学习第二种框架:python+django,较为易学易用。

  • 前端页面:html,css,jquery,bootstrap,Echarts,前端页面是门脸,是使用人员操作的入口,也是数据输入和展示最直观的地方。

    Css样式决定页面布局和美观度;jquery是一种js框架,极大地简化了 js 编程;echarts能够提供简单易用的常用图表,使页面更加有档次感、数据展示更加直观简洁。

(图表示例)

一般前端资源会存放在web层的static静态文件夹下。

(静态资源引用)

  • 后端服务:spring,mybatis,使用Spring框架可以简化很多基础性的工作,配置好后可以方便构建业务应用,是一个非侵入性的轻量级容器。

  • 数据库:Mysql或Orcale 的数据库安装,库表创建,字段设计,常用的sql语句

  • 系统:能熟练在windows或linux系统上搭建项目,日志查看等操作

  • 服务容器:tomcat服务部署,nginx负载配置,docker使用

  • 持续集成:git,jenkins

  • 开发工具:idea和eclipse

  • 代码调试:testng或junit的单元调试及debug和远程debug使用




四、测试开发工程师的进阶



为了提高测试效率,降低测试成本,使测试价值最大化,在具备测试经验、熟练使用测试工具并有一定开发能力的前提下,就可自主开发平台,或对现有开源工具进行二次开发了,这也是测试开发工程师不断进阶的必经之路。下面介绍一下企业金融测试部自主研发的其中几个自动化工具平台,希望对大家在开发测试平台时有一定的启发:

一、源代码监控分析平台。在开源平台sonarqube上定制符合部门需求的规则,通过jenkins集成定时对项目代码质量进行扫描,对单元测试和代码覆盖率进行统计、定制化邮件发送,让开发和测试同学可以发现项目源码的问题。

二、接口自动化平台。在测试工具基础上结合HttpClient、testng等,生成美观的可视化报告,并邮件发送给指定人员,实现接口自动化平台。现已稳定运行数月,并实现接口入参、加密传参及数据库检查点,以及多接口间的出入参依赖,可实现多接口,多场景的组合测试,完美覆盖http、jsf接口的测试,提高了使用者在接口方面的测试效率

三、UI自动化平台。在测试工具的基础上引入selenium、Jenkins、testng,实现ui自动化平台。现在很多公司都在做ui自动化,通常是用java(或python)加上selenium,跑自动化程序,但这对小白测试人员有一定难度。但在我们平台,测试人员只需要在页面维护相关元素,不用写代码,就可实现ui自动化,并且可以多场景组合测试,方便测试环境更新版本和线上的回归测试,对于元素维护简单方便易上手。



四、测试工具平台。我们在测试工具基础上结合企业金融业务开发了测试工具平台,它是基于springMVC框架的前后端系统。目前总访问次数近三万次,覆盖约十几个业务线系统,单功能访问次数达几百次,在面对复杂业务场景、重复营造和查询数据、频繁业务联调时,可直接让对方访问此平台,一键生成和查询想要的数据,一键实现复杂的业务流程,极大的解脱了研发人员的时间,也避免了不必要的等待时间。

五、BUG监控分析平台。在测试工具的基础上对redmine进行数据提取、处理,通过web页面图表直观展示,可简洁明了的查看bug数据及项目质量情况。


以上是对测试开发工程师发展的一些思考,希望能抛砖引玉,引起大家对测试平台的兴趣。 欢迎大家一起探讨测试的发展,若以上平台对大家工作有帮助,对京东大家庭的发展有帮助,欢迎大家技术接入,联系企业金融测试部邮箱:cft@jd.com。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

测试自动化平台 的相关文章

  • van-field输入数字失焦后强制保留两位小数

    van field输入数字失焦后强制保留两位小数 一 html 二 JS部分 1 watch监听 2 强制控制有两位小数 一 html
  • 设计模式浅析-适配器模式

    前言 2017年悄悄的来了 无声无息的以至于我都还没好好缅怀一下荒诞的2016 不得不说 2016没能通过努力达到应该有的程度 看样子目标还是要有的 那就先设定一个小目标吧 设计模式 当你学会了设计模式 就要忘记设计模式 辉哥 适配器模式
  • 华为手机隐藏指令的5个代码

    第一个 拨号键输入 6130 这个指令主要用于查看手机当前的网络信号 手机基本信息以及手机的使用情况数据的统计 尤其是手机使用情况统计数据 可以查看当前手机上次使用了哪些应用 使用的具体时间以及使用的时长 第二个 拨号键输入 2846579
  • MySQL 数据库存储引擎

    目录 一 存储引擎简介 二 MyISAM存储引擎 1 MylSAM介绍 2 MyISAM表支持3种不同的存储格式 3 MylSAM的特点 4 MyISAM使用的生产场景 三 InnoDB存储引擎 1 InnoDB介绍 2 InnoDB的特点
  • ubuntu18.04下pass-through直通realteck PCI设备到qemu-kvm虚拟机实践

    设备直通是一种虚拟化资源分配方式 通过将物理设备直通给虚拟机环境 达到虚拟机可以直接访问物理设备的目的 直通功能对设备的要求不高 不需要设备支持PF VF 目前市面上的显卡 网卡一般都支持直通 典型场景比如有两块显卡 一块主机用 另一块虚拟
  • 前端如何实现浏览器适配?

    1 根据window screen width获取当前浏览器的宽度 然后根据宽度加载不同的样式文件 注意 这里的script一定要写在head标签里面 这样在加载页面的之前 会先把css文件加载出来 2 媒体查询 根据设备显示器的特性为其设
  • python 根据索引取值_Python 从列表中取值和取索引的方法

    如下所示 name list zhangsan lisi wangwu 1 取值 print name list 0 print name list 1 print name list 2 2 取索引 print name list ind
  • 北京市经济和信息化局:鼓励布局区块链算力中心

    近日 北京市经济和信息化局印发 北京市数据中心统筹发展实施方案 2021 2023年 的通知 方案提出 鼓励布局人工智能 区块链算力中心 推动形成 4000PFlops 即每秒 4 百亿亿次浮点运算 总算力规模的人工智能公共算力基础设施 重
  • GEN 自动生成 GORM 模型结构体文件及使用示例

    GEN 自动生成 GORM 模型结构体文件及使用示例 背景 GEN 是一个基于 GORM 的安全 ORM 框架 由字节跳动无恒实验室与 GORM 作者联合研发 主要功能说白了就是帮助生成数据表对应的模型文件和更安全方便地执行SQL 直接使用
  • 短链服务架构实践

    1 存储采用REDIS做数据存储 2 id keyword gt long url hset key long url id keyword long url 3 md5 long url gt id keyword hset key sh
  • 队列的实际应用和操作(顺序表)

    题目 利用队列求解报数问题 设有n个人站成一排 从左向右的编号分别为1 n 现在从左往右报数 1 2 1 2 数到 1 的人出列 数到 2 的立即站到队伍的最右端 报数过程反复进行 直到n个人都出列为止 要求给出他们的出列顺序 头文件SqQ
  • 内附源码!使用Python和requests库轻松爬取全国高校排名

    目录 前言 代码实现 总结 前言 中国的大学排名数据比较分散 一些权威机构会发布综合排名 如教育部的 双一流 985 211 计划 还有一些机构会发布专业排名等 因此 具体爬取哪些排名数据可能需要根据实际需要来进行筛选 代码实现 导入req
  • C++ final关键字

    1 禁用继承 C 11中允许将类标记为final 方法时直接在类名称后面使用关键字final 如此 意味着继承该类会导致编译错误 实例如下 class Super final 2 禁用重写 C 中还允许将方法标记为fianal 这意味着无法
  • (小白教学) 用Node.js+Mysql+Express从0搭建实现简单的登录注册

    Node js Express MySql实现用户登录注册 开发工具 vscode git postman 工程目录 数据库表 node搭建过程 首先创建一个为空文件夹server 打开git 初始化一个package json包 npm
  • PointNet学习笔记(一)—— 论文

    PointNet学习笔记 一 论文 本文记录了博主在学习 PointNet Deep Learning on Point Sets for 3D Clasification and Segmentation 过程中的总结笔记 更新于2019
  • linux grpc c++编译安装

    环境信息 1 操作系统 centos7 4 2 g 版本 4 8 5 grpc v1 29 1 版本 源码下载 因为国内现在访问github速度很慢 这里用了代理镜像 git clone b v1 29 1 https hub xn gzu
  • 安装打印机时LPT,COM、USB端口区别

    LPT 并口 LPT是用于使用打印机或其它设备的 LPT并口是一种增强了的双向并行传输接口 在USB接口出现以前是扫描仪 打印机最常用的接口 目前使用滴少 COM 串口 COM端口通常用于连接鼠标及通讯设备 如连接外置式MODEM进行数据通
  • 内网进行spring-boot开发时Jar包依赖的解决

    1 简介 使用Spring Boot可以轻松的创建独立运行的程序 非常容易构建独立的服务组件 是实现分布式架构 微服务架构的利器 Spring Boot简化了第三方包的引用 通过提供的starter 简化了依赖包的配置 1 1 Spring
  • Cisco Packet Tracer配置操作的三种命令模式

    Cisco Packet Tracer三种基本命令模式 这里我们需要讲一下三种命令模式 今后绝大部分操作都通过命令实现 所以需要熟悉命令模式 在路由器命令配置界面中演示 三种命令模式介绍 用户模式 用户模式下可进行的操作较少 我们一般不在用
  • kubeadm init三个master节点遇到的问题

    要创建三个master节点 就不能使用其中一台主机的IP 所以申请了一个VIP地址 kubeadm init apiserver advertise address 0 0 0 0 image repository k8s gcr io c

随机推荐

  • qmake 乱乱乱谈(四)

    继续qmake 本文主题 低调的 TEMPLATE subdirs 非常非常常用的一个东西 可是manual中却介绍的很少 太低调了 在编写包含多可执行文件 库 插件 的程序时 一直不敢相信subdirs的能力 以至于曾一度想转到cmake
  • python三级考什么_什么是计算机三级考试?计算机三级考什么?

    什么是计算机三级考试 计算机三级考什么 2020 04 1118 04 03 来源 上学吧 作者 dengyangjie 全国计算机等级考试 National Computer Rank Examination 简称NCRE 是经原国家教育
  • HTTP POST GET 本质区别详解

    一 原理区别 一般在浏览器中输入网址访问资源都是通过GET方式 在FORM提交中 可以通过Method指定提交方式为GET或者POST 默认为GET提交 Http定义了与服务器交互的不同方法 最基本的方法有4种 分别是GET POST PU
  • 硬件工程师修炼的几层境界

    分享一篇文章 觉得写的很好 mark一下 第零层 1 对基础技术有认知 2 模电 数电 电路分析 信号与系统 物理学之电磁学基础 3 基本掌握焊接 电路设计软件 示波器使用 万用表等基础仪器仪表的使用 第一层 1 精力主要花在学习原理图工具
  • Windows 7 下 vs2010内存泄漏检测工具VLD的使用

    1 环境和软件 Windows7 32位系统 Visual Studio 2012 旗舰版 vld 2 2 3 setup exe 大小1 04M 2 步骤 1 下载安装 下载好 vld 2 2 3 setup exe 大小1 04M 并安
  • CentOS 7.9 使用rpm包安装MySQL-5.7.43

    参考 refman 5 7 pdf 2 5 5 Installing MySQL on Linux Using RPM Packages from Oracle 前期准备 1 防火墙端口检查与设置 检查防火墙状态 systemctl sta
  • 买服务器做网站 镜像选什么,云服务器做网站镜像类型选啥

    云服务器做网站镜像类型选啥 内容精选 换一换 创建一台或多台云服务器 V1 1版本创建云服务器的接口兼容了V1版本创建云服务器 按需 的功能 同时合入新功能 支持创建包年 包月的弹性云服务器 本接口为异步接口 当前创建云服务器请求下发成功后
  • 【Golang

    环境准备 GoLang go1 15 7 windows amd64 Docker 1 13 1 MySQL 8 0 28 一 利用容器部署mysql 1 首先通过docker pull mysql拉取mysql镜像 root k8s ma
  • Jetty篇一之初识Jetty

    前言 最近公司项目中用到了Jetty来作为项目的web容器 借此机会来分享一下我的学习心得 在学习Jetty之前 一定要了解一些Jetty的基本概念以及优缺点 这样才方便做更深入的学习 现在让我来慢慢揭开它的神秘面纱吧 基础 什么是Jett
  • 大数据模型案例库-涵盖多行业,超百个实战项目案例

    平台目前积累了大量的人工智能应用模型 不仅包括多年来人工智能企业服务方面的沉淀 还包括大量其他企业的真实项目应用模型 以及高校智能工作室成果模型 覆盖教育 医疗 交通 金融 科技 农业等18个行业 平台面向高校 企业 个人等广大用户群体 所
  • Candence原理图误删图页并保存退出后的恢复方法

    一早打开Candence准备工作 发现原理图少了几页 心里很慌 昨晚在画PCB的时候设置按了几次Delete键 没有反应 可能删了原理图 关闭的时候也没有看 直接保存退出了 看了之前拷贝备份的文件 时间有点久 那只能靠软件的自动备份功能了
  • C语言进阶(九)—— 函数指针和回调函数、预处理、动态库和静态库的使用、递归函数

    1 函数指针 1 1 函数类型 通过什么来区分两个不同的函数 一个函数在编译时被分配一个入口地址 这个地址就称为函数的指针 函数名代表函数的入口地址 函数三要素 名称 参数 返回值 C语言中的函数有自己特定的类型 c语言中通过typedef
  • 学习笔记-选择排序

    选择排序 将一个一维数组从小到大排序 思路 选择排序的思路是 首先认为数组的第一个数是最小的 保留它然后遍历它后面的数 跟它作比较 选择出最小的数和位置 遍历结束后 让这个最小的数和数组的第一位数交换 这样确定了第一个最小的数 之后重复这个
  • Unity AR阴影投射透明地面 仅渲染模型实时阴影 Shader实现

    亲测可用 上面就是实现的效果 仅仅渲染阴影 地面透明 也可以换成AR中的虚拟物体 AR中为的虚拟物体添加阴影 只用unity的光照投影是没办法实现的 或者需求是 角色需要投射阴影在墙上 但是墙不能显示 只渲染出阴影 相当于接受阴影的地面墙体
  • 吊打 CLIP 平均10个点,Meta 多模态通用模型 FLAVA真香啊

    厉害了 作者将单一模型运用于三个不同领域的不同任务 结构简单且训练直观 还能有着出色的表现 自Transformer横空出世 从NLP到CV 再到今天的多模态 无数基于Transformer的模型被应用于各类任务 似乎真的印证了当年文章的标
  • ldd not a dynamic executable

    在开发环境编译运行很ok的程序 到了客户的生产环境一直有问题 编译找不到库 类似这个样子 usr bin ld skipping incompatible lib libasound so when searching for lasoun
  • EXCEL-VBA:Workbooks.Open 参数 (打开文件)

    打开一个工作簿 语法 表达式 Open FileName UpdateLinks ReadOnly Format Password WriteResPassword IgnoreReadOnlyRecommended Origin Deli
  • UE5导入倾斜摄影

    前言 虚幻引擎是全球最先进的实时3D创作工具 可制作照片级逼真的视觉效果和沉浸式体验 2022年4月5号虚幻引擎发布了颠覆性的UE5 倾斜摄影是城市实景的基础 通过无人机采集实际照片再进行三维重建 常见的数据格式为osgb 本文主要介绍UE
  • JSP自定义标签的(生命周期与开发if,foreach,out)

    自定义标签定义 是用户定义的JSP语言元素 扩展名为tld的文件 tag标签的配置文件 通常放在WEB INF下面 自定义标签的开发及使用步骤 思路 1 1 创建一个标签助手类 继承BodyTagSupport 标签属性必须助手类的属性对应
  • 测试自动化平台

    https mp weixin qq com s WU5h8FW6BT5YZtlsSuCIcw 摘要 随着近几年国内IT行业高速发展 对测试工程师的要求也越来越高 其作用也越来越重要 但很多测试工程师也迎来了个人发展的瓶颈 下一步该向哪个方