分布式服务一体化自动化测试平台附源码
off999 2025-01-07 14:56 29 浏览 0 评论
AutoMeter是一款针对分布式服务,微服务API做功能和性能一体化的自动化测试平台,一站式提供发布单元,API,环境,用例,前置条件,场景,计划,报告等管理
在项目开发,迭代交付过程中开发人员,测试人员需要针对系统提供的API做调试,回归测试,性能测试。自动化测试,一个好的平台本质上需要解决API测试的5大基本问题:
1.支持不同的角色,技术人员多人协作
2.支持定义多个不同的测试环境
3.支持定义各种被测系统,API
4.支持功能,性能,回归,自动化测试
5.功能/性能明细报告,统计报告1.运行测试的环境如何定义?
一般个人,公司在使用分布式,微服务架构,从开发到发布上线可能会经过多套环境测试验证,比如开发环境,测试环境,准生产环境,生产环境,其中测试环境又可能分为多套功能测试环境和性能测试环境,多套环境分开管理,可以有序而不相互干扰进行测试工作 每套环境由开发的发布单元(服务,站点,应用各个公司叫法不一样),即提供api服务能力的实体,中间件(数据库,nosql,web服务器等等)这些元素组成 对于测试来说以上的元素我们需要部署到指定的服务器或者容器中整体来作为一套环境做测试工作
2.针对什么来做测试?
针对具体开发的服务(发布单元,应用,站点),既提供API的实体,这边我们命名为发布单元,可以定义访问此服务的协议,端口。 此发布单元包含了若干个API,每个API会有对应的参数需要维护,这其实也是个人或者公司提供对内对外api能力的定义
3.设计测试用例
从个人或者公司的角度看,用例的数量和类型来决定需要做怎么样的执行,如果用例数量庞大,并且需要快速得到结果,本质上我们需要拆分用例由多机并行执行满足需求,也就是多点执行,如果需要性能的测试,执行性能的机器我们可以是低性能的多台机器发起或者是高性能的少量机器发起,所以说怎么运行是根据需要来定制执行用例的类型和机器数量
4.运行用例
根据测试业务需要,定义成多个测试集合来满足不同的测试需要,功能测试,性能测试,回归测试,CI对接自动化测试
5.获得什么样的反馈报告?
对于用例执行完,我们希望看到什么反馈,对于开发,测试,或者其他技术人员,我们希望看到运行的用例详细信息:结果状态,运行时间,请求数据,API的具体响应,我的期望,断言的详细信息,以及用例运行时的信息,对应性能来说,我们还希望能得到统计的信息,比如整体性能的时间,tps,响应时间,99%pct等,以及性能结果的多次对比
架构
服务器部署
1.前端:testcenterapp
2.后端:testcenterService,dispatchservice,conditionservice,slaverservice
整体目录结构在Release/Beta下面,如图
部署所需要的基础环境系统的版本如下:
操作系统:Linux或者Windows
1.jdk 1.8
2.redis 5.0.8
3.mysql 5.7
4.nginx 1.9.9
具体每一项的部署方式如下:
一.数据库初始化
1.Mysql新建数据库testcenter,执行testcenter.sql(Release/Beta/sql/init-sql/testcenter.sql目录下) 创建账号,密码(test,test),并且给账号设置testcenter库的读写权限
后续版本的更新,提供增量的sql文件来执行,在目录Release/Beta/sql/update-sql中,可以按照日期文件依次执行
二.Redis
redis配置文件redis.conf中将protected-mode =no,表示免密码登陆,程序连接redis都没使用密码
三.前端:目录testcenterapp/dist,建议部署在Nginx中
1.配置文件:testcenterapp/dist/static/config.js中配置项SERVER_URL为指向后端TestCenterService的地址,可以根据自己实际的地址修改,如下图
2.配置nginx.conf中的http.server.location.root配置dist的存放服务器目录,例如:/app/AutoMeter/dist/ dist为admin打包出来的静态文件目录
3.nginx重启,nginx -s relaod
4.访问nginx的对外端口,既可以访问到后台页面:
四.后端服务
后端service目录结构,每个xxxxxservice目录下有jar,config目录,startup.sh 为启动文件,启动文件startup.sh需要修改下脚本指定下自己部署的目录
1.TestCenterService 测试中心服务
配置文件:config/application.yml中的配置项(6项配置):
- spring.dispatchserver.serverurl 指向调度服务DispatchService的地址和端口
- spring.conditionserver.serverurl 指向条件服务ConditionService的地址和端口
- spring.datasource.url/username/password 配置Myslq数据库的连接字,账号,密码(账号和密码配置项是加密后的字符串),默认是test/test, 需要修改的话可以运行test目录下的JasyptStringEncryptor 如下图 配置你需要的明文账号和密码,运行结果中加密串就是配置文件中的账号和密码,当然新账号密码在mysql中也要建好对应的账号和密码,以及赋此账号对于testcenter库的读写访问权限
- spring.redis.host/port 配置redis的ip和端口
- spring.logging.file/path 配置日志文件名以及日志文件目录
- 启动:执行startup.sh
2.DispatchService 调度服务
配置文件:config/application.yml中的配置项(4项配置)
- spring.conditionserver.serverurl 配置指向条件服务ConditionService的地址和端口
- mysql,redis,logging三项配置和TestCenterService相同
- 启动:执行startup.sh
3.ConditionService 条件服务
配置文件:config/application.yml中的配置项(4项配置)
- mysql,redis,logging三项配置和TestCenterService一致
- 启动:执行startup.sh
4.SlaverService 条件服务
配置文件:application.yml中的配置项(3项配置)
- mysql,redis,日志三项配置和TestCenterService一致
- 启动:执行startup.sh
五:启动顺序
1.数据库,redis
2.SlaverService
3.ConditionService
4.DispatchService
5.TestCenterService
6.启动nginx,nginx -s reload
访问nginx的地址,默认管理员账号密码为,admin admin123 登陆
想要源码部署,请记得关注+转发+私信
私信回复【自动化测试】
相关推荐
- 怎么查询家里wifi密码(怎么查询家里wifi密码是多少)
-
一、通过已连接wifi的电脑查看1、找到电脑右下角的无线网图标,就是类似信号的图标,点开;2、然后右键自己的wifi名称,选择“属性”;3、进去之后勾选“显示字符”,然后就可以看见密码框的密码以数字显...
- 分区工具diskgenius怎么合并分区
-
DiskGenius是一款功能全面的磁盘管理工具,其可以帮助我们进行磁盘分区管理,包括创建新分区、删除分区、扩展分区等。如果您想要合并分区到C盘,可以按照以下步骤进行操作:1.打开DiskGeniu...
- windows10易升怎么用(微软windows10易升使用教程)
-
windows10易升是微软官方的。windows10易升是微软官方发布的升级助理或者叫升级助手(官方下载),帮助你升级到win10最新版本,同时也帮助Win7Win8.1用户升级到Windows1...
- 300兆光纤买什么路由器(300兆光纤买3000m的路由器有用吗)
-
对于300Mbps的网速,推荐选择支持AC750及以上的路由器型号。比如TP-LinkArcherC20、D-LinkDIR-816、NetgearR6020等,都是性价比不错的选择。此类路由...
- windows10产品密钥查询(查看windows10产品密钥)
-
要查看电脑上Windows10的产品密钥,你可以按照以下步骤进行操作:打开“开始”菜单,然后点击“设置”图标(齿轮状图标)。在“设置”窗口中,点击“更新和安全”选项。在左侧导航栏中,选择“激活”选项...
- 电脑总死机卡住不动怎么办(电脑老是死机卡住)
-
如果你的电脑经常卡死,而且只能强制关机,别忘了说明电脑这个配置不够造成的,你需要提高一下它的配置,比如说加一个内存条或者换一个固态硬盘,这样才能够正常运行,不然的话这种电脑是没有办法使用的,现在电脑都...
- win10自动修复死循环无法开机
-
答:1、请确保电脑有充足的电源供应,确保电源可以正常供电;2、检查U盘是否正常安装;3、检查是否有新的软硬件设备接入;4、运行chkdsk,检查硬盘并修复文件系统;5、检查Windows更新,如果存在...
-
- 查看台式电脑ip地址(查询台式电脑ip地址)
-
如何查看主机名和IP地址:右击我的电脑-属性-网络标识(win2000)/计算机名(winxp)-完整的计算机名称后面的就是你的主机名.右击网上邻居-,属性-右击本地连接-属性-双击INTERNET协议(tcp/ip)就可以看到自己的I...
-
2025-12-15 19:03 off999
- windows7 ultimate(windows7ultimate无法启动)
-
32位的。1、在下载操作系统镜像的时候,带有x86标识的一般是32位系统,指的是CPU地址总线是32位、fetch、decode解压指令时也按32位字长来进行。x64一般表示系统为64位。2、x86是...
- 雨林系统u盘安装步骤(雨林重装系统)
-
如果是ISO镜像那就刻盘安装,如果不想刻盘,就硬盘安装。问题又来了,大部分的都是GHOST的系统,还有就是纯安装版的。我只说一下GHOST的,先把ISO文件给解压了,然后里边会有占主要空间大小的.GH...
-
- 0xc000021a手动修复(修复0xc0000225)
-
出现这样的问题很常见,用以下方法及解决方案就可以解决1、错误代码0xc000021a表示用户模式子系统有所损坏。一般按照蓝屏提示重启系统,即可正常运行。2、如果重启没能解决,则建议通过“最后一次正确的配置”方式启动系统。3、如果系统文件被破...
-
2025-12-15 17:51 off999
-
- windows7网络驱动(win7网络驱动在哪个文件夹)
-
1.Networkcarddriver。2.右键我的电脑,点击“属性”,选择左侧“设备管理器”3.点击“网络适配器”,如果方框内没有驱动,请下载驱动精灵安装网卡驱动。在Windows7操作系统中,网络驱动程序的名称通常以网络适配器的品...
-
2025-12-15 17:03 off999
- diskgenius的功能介绍(diskgenius是什么)
-
先打开DiskGenius(如果系统打不开了,可以在PE下运行),在弹出分区工具Diskgenius工具中,依次点击“硬盘——重建主引导记录(MBR)”选项,无需理会弹出的提示窗口,直接按下“是”即可...
- 网速快但是打开网页慢(网速快但是打开网页慢怎么回事)
-
原因有很多,有可能是路由器的原因,也有可能是其他原因,总的来说,网速慢的常见原因有以下几种:1.wifi被人蹭网,别人占用了带宽或者给你限速了,可以登录路由器管理页面查看连接的设备数。2.路由器性能...
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
python入门到脱坑 输入与输出—str()函数
-
宝塔面板如何添加免费waf防火墙?(宝塔面板开启https)
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
失业程序员复习python笔记——条件与循环
-
使用 python-fire 快速构建 CLI_如何搭建python项目架构
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
