百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

分布式服务一体化自动化测试平台附源码

off999 2025-01-07 14:56 13 浏览 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项配置):

  1. spring.dispatchserver.serverurl 指向调度服务DispatchService的地址和端口
  2. spring.conditionserver.serverurl 指向条件服务ConditionService的地址和端口
  3. spring.datasource.url/username/password 配置Myslq数据库的连接字,账号,密码(账号和密码配置项是加密后的字符串),默认是test/test, 需要修改的话可以运行test目录下的JasyptStringEncryptor 如下图 配置你需要的明文账号和密码,运行结果中加密串就是配置文件中的账号和密码,当然新账号密码在mysql中也要建好对应的账号和密码,以及赋此账号对于testcenter库的读写访问权限
  4. spring.redis.host/port 配置redis的ip和端口
  5. spring.logging.file/path 配置日志文件名以及日志文件目录
  6. 启动:执行startup.sh

2.DispatchService 调度服务
配置文件:config/application.yml中的配置项(4项配置)

  1. spring.conditionserver.serverurl 配置指向条件服务ConditionService的地址和端口
  2. mysql,redis,logging三项配置和TestCenterService相同
  3. 启动:执行startup.sh

3.ConditionService 条件服务
配置文件:config/application.yml中的配置项(4项配置)

  1. mysql,redis,logging三项配置和TestCenterService一致
  2. 启动:执行startup.sh

4.SlaverService 条件服务
配置文件:application.yml中的配置项(3项配置)

  1. mysql,redis,日志三项配置和TestCenterService一致
  2. 启动:执行startup.sh

五:启动顺序

1.数据库,redis
2.SlaverService
3.ConditionService
4.DispatchService
5.TestCenterService
6.启动nginx,nginx -s reload
访问nginx的地址,默认管理员账号密码为,admin admin123 登陆


想要源码部署,请记得关注+转发+私信

私信回复【自动化测试】

相关推荐

Python如何操作Excel,xlrd和xlwt类库的使用

xlrd和xlwt类库简介xlrd和xlwt是Python中两个用于处理Excel文件的类库。xlrd用于读取Excel文件,xlwt用于写入Excel文件。这两个类库可以在Python中方便地处理E...

操作Excel,Python根本打不过VBA

很开心今天把一个与财务有关的Excel取数计算方面的项目收尾了。这次项目使用的是ExcelVBA语言开发。作为一名Python语言使用者,经历过这次项目开发后,更加坚定了Python根本不可能动摇V...

个人用户将Excel接入DeepSeek的详细步骤指南

个人用户将Excel接入DeepSeek的详细步骤指南,无需复杂编程基础,提供多种实现方式:一、准备工作:获取DeepSeekAPI密钥1.注册DeepSeek账号-访问[DeepSeek官网...

Python通过win32库操控Excel实战指南

Python通过win32库操控Excel实战指南。同学们,我是张老师。今天给大家讲的是Python通过win32库操控Excel实战指南。今天课的主要内容有:易开发、环境配置、二Excel基础操作实...

如何在Excel中直接使用DeepSeek的功能

在Excel中直接使用DeepSeek的功能(如AI模型能力),目前需通过间接集成方式实现,因为DeepSeek并未提供官方的Excel插件。以下是两种常用方法:方法1:通过API调用集成(推荐)若D...

Python自动化:xlrd读取excel

#pipinstallxlrd工作簿、工作表相关操作:importxlrd#打开工作簿people=xlrd.open_workbook('people1.xls')...

Python自动化:openpyxl读取excel,补充了些内容

打开工作簿,选择工作表importopenpyxl#打开已有工作簿wb=openpyxl.load_workbook('example1.xlsx')#sheetna...

Python自动化:openpyxl读取excel

#pipinstallopenpyxl工作簿、工作表相关操作:importopenpyxl#打开已有工作簿wb=openpyxl.load_workbook('example...

Java的优势:跨平台只是一部分

以下讨论只针对PC端和移动端。Java最大的优势真的在于跨平台吗?以前是,但现在已经不是了。有跨平台需求的仅仅是客户端应用,而不是服务端。例如桌面应用,你的客户可能是Windows用户,也可能是Lin...

都2023年了,为什么大家还都在吹捧 Python?

2023年,Python还可学吗?答案当然是可。近些年间,Python的火热有目共睹,作为一种功能强大的高级编程语言,在2018年的时候它的流行程度就得到了大幅提高。入门人工智能有很多种选择...

Python编程语言的优势有哪些?

1.简单易学:Python采用极简主义设计思想,语法简单优雅,不需要很复杂的代码和逻辑,即可实现强大的功能。这使得Python很适合初学者学习,可以帮助初学者快速入门。2.开源免费:Python所有内...

Python操作Excel库xlrd与xlwt常用操作详解

来源:早起Python作者:刘早起大家好,我是早起。在之前的Python办公自动化系列文章中,我们已经相信介绍了openyxl、xlsxwriter等Python操作Excel库。openpyxl操作...

python处理Excel,从此爱上python

python能干的事情太多,对于小白来说,只能望洋生叹,不过不要灰心,看看我是如何使用python处理Excel的,你就能理解python的简单和高效。一、Excel文件1、文件路径F:/...

软件测试|Python操作Excel制作报表,不要太方便

前言今天我们介绍的是Python操作Excel制作报表,我们需要用到的库是openpyxl,我们主要使用的功能有下列几个功能插入与查询数据分类数据统计数据可视化字体颜色修改基本操作表格初始数据如下图所...

python笔记52:python操作excel

主要内容:小目标:掌握excel模块主要内容:excel相关模块,openpyxl安装使用如果看完这篇文章,你还是弄不明excel相关操作;你来找我,我保证不打你,我给你发100的大红包。1.ex...

取消回复欢迎 发表评论: