前言
在自动化测试过程中,随着对接的自动化需求不断增加,测试用例数量显著上升,参与自动化测试的人也越来越多,多人协作就会碰到很多问题,包括脚本、数据、版本、项目整合、持续集成等,而且也增加了后期维护的成本。为了能解决这些问题,开发一个自动化管理平台来统一对这些代码、数据、版本、集成进行处理,是保质提效的不错手段。这篇博客,给大家介绍一下本人针对公司的自动化需求开发的自动化管理平台。
平台功能
UI 自动化 :
特点:
1、用例支持增删改、维护、调试、结果等等
2、用例实时日志
3、用例定位元素、业务采用 po 模式
4、用例支持多环境复制功能 (可根据项目版本进行多套数据保存)
5、用例调试带日志、截图、生成报错记录
6、用例支持执行脚本浏览器操作回放
7、用例支持局部/全局变量
8、用例支持分布式用户本地电脑上浏览器启动 (默认服务器启动)
9、用例执行状态下可进行中断用例脚本操作
10、用例可进行注释
11、用例支持拖拽、复制
12、用例可进行功能用例的描述
13、用例支持多线程
14、用例脚本支持判断、循环、数组、数据库对接、接口对接等等
15、用例与用例之间可互相进行业务调用
16、测试计划进行版本控制(计划完成时可设置直接将结果发布至钉钉)
17、测试计划结果报告展示
18、支持与 jenkins、钉钉、TestLink 对接,进行自动化发布流程
接口自动化:
因为接口平台还处在开发阶段,功能还不完善,这里只介绍下大体框架和思路。
整体框架
语言 JAVA
服务端 spring + springmvc + mybatis + mysql + 第三方 jar 包 (有点多,我就不在这里阐述了,想要具体了解可以联系我) |
前端 JQuery + AJAX + Bootstrap + 第三方框架 (具体了解可以联系我) |
UI 自动化展示
1、首页(整体的设计结构、用户操作手册、操作占比耗时统计、APP 包)
2、元素对象页面
3、用例编写调试界面
用例的增删改页面、测试数据使用变量、定位值使用 PO、还有业务互相调用、用例执行过程中可以进行中断和本地浏览器启动
用例还可以根据自己项目本身的环境来定义测试环境、目前浏览器只支持 chrome 和 firefox
用例执行支持多个线程并行执行、日志是实时的、执行完成后自动更新记录日志、截图、结果
用例添加界面、每个选择的动作非必填项都被禁止输入、输入框内容可实时放大查看编辑
功能用例编写
局部/全局变量
本地浏览器 (用户电脑执行脚本)
操作记录统计
testlink 关联
多线程并行执行
环境配置
4、用例多环境复制功能
用例可以根据项目需求进行用例数据存档,因为我这边需求只需要存一份预发布环境的用例数据,所有只有一个
5、UI 测试计划
以计划为基础作为版本管理,这个就不多做解释了
6、UI 测试计划结果
计划结果完成后的结果展示页
7、钉钉机器人
8、钉钉报告展示
接口自动化展示
视频演示
你花了多久搞出来的有点 6 啊大佬
个人的话应该开源没多大问题把。
这个平台目前使用情况如何,还在继续维护吗?
厉害了厉害了!
1、没用 testng、多线程异步
2、用例顺序和依赖是用户前端选择来设定的,后台只需要根据这些条件进行匹配执行就可以
3、还有用例中有个业务调用功能,这个也是另一种的依赖方法
请问下是否有用到 testng?如果没有用到 testng,楼主是在后台用多线程执行的用例吗?testng 提供的一些功能,例如 setup teardown 用例执行顺序 用例间的依赖是怎么实现的呢?
请问一下分布式用户本地浏览器启动,是怎么实现的。
开源吧,大神
一个人完成,那很棒啊。业余时间加班
不懂楼主的团队为啥要用这背景,同样做过平台的。你们可以高大上简洁的,变的有点山寨感。
没开源吗
果然,楼主也在这里
请问能留个联系方式交流下吗, 我有自学一些技术, 就是具体使用起来, 不知道该用哪些技术
1、用例本身就是共享的(除非限制了权限查看处理),用例复制你可以理解为将整条用例进行复制,该用例关联的变量、测试数据、用例等等的所有数据都会一并移到一个全新的环境下
2、做这个功能是因为实际场景会遇到测试环境已经开始新的迭代,而预发布还是之前的版本(这个时候线上出了问题需要自动化脚本去追溯问题),可是自动化脚本已经改成新迭代的数据了,所以将上一次迭代的脚本数据进行保留追溯
观摩学习下。楼主的用例复制功能,如果多人使用,是不是可以理解为共享功能?那么需要共享的那条测试用例,测试数据共享么?如果共享,数据是否更新,是定格共享时的数据,还是拿最新的数据?
1、自学,培训机构教的都是基础系统化的 (个人不建议去培训),只有自己学习的时候遇到坑解决后你的提升才能比较显著
2、力不从心说明你没学好,建议边学边写
1、这平台的话确实要看公司实际情况,有足够人力物力才有开发的意义。
2、框架和部署是要放在一起的,因为你这套东西归根结底是个 web 项目。
大佬膜拜啊!!!!!
1、首先我只是一名测试
2、其次这平台是我自己独立堆出来的
3、我的平台只是为了自身公司针对性开发的
4、我没打算包装也没准备宣传,只是为了给大家提供点思路
先夸奖 1 下,一些功能和想法挺全的,平台的功能细节有亮点。
再吐槽 1 下,你完全没有任何产品设计的思路,做出来的东西给人的感觉,仅仅是几个程序员堆代码堆出来的小工具页面。既不会包装,也不会推广宣传。
为大佬捧场
背景图换一张感觉更好点
楼主开源嘛
好奇你们的 PO 对象是怎么管理? 数据库里保存,还是代码编写?
看着像是 Grafana 做的,楼主你 UI 自动化弄成平台可视化,感觉是为了提示操作便利性,牺牲了扩展性和灵活性啊
操作这么麻烦,为什么不直接写代码?
我喜欢简洁点的。
背景图去掉挺好的