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

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

off999 2025-01-07 14:56 22 浏览 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 登陆


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

私信回复【自动化测试】

相关推荐

阿里云国际站ECS:阿里云ECS如何提高网站的访问速度?

TG:@yunlaoda360引言:速度即体验,速度即业务在当今数字化的世界中,网站的访问速度已成为决定用户体验、用户留存乃至业务转化率的关键因素。页面加载每延迟一秒,都可能导致用户流失和收入损失。对...

高流量大并发Linux TCP性能调优_linux 高并发网络编程

其实主要是手里面的跑openvpn服务器。因为并没有明文禁p2p(哎……想想那么多流量好像不跑点p2p也跑不完),所以造成有的时候如果有比较多人跑BT的话,会造成VPN速度急剧下降。本文所面对的情况为...

性能测试100集(12)性能指标资源使用率

在性能测试中,资源使用率是评估系统硬件效率的关键指标,主要包括以下四类:#性能测试##性能压测策略##软件测试#1.CPU使用率定义:CPU处理任务的时间占比,计算公式为1-空闲时间/总...

Linux 服务器常见的性能调优_linux高性能服务端编程

一、Linux服务器性能调优第一步——先搞懂“看什么”很多人刚接触Linux性能调优时,总想着直接改配置,其实第一步该是“看清楚问题”。就像医生看病要先听诊,调优前得先知道服务器“哪里...

Nginx性能优化实战:手把手教你提升10倍性能!

关注△mikechen△,十余年BAT架构经验倾囊相授!Nginx是大型架构而核心,下面我重点详解Nginx性能@mikechen文章来源:mikechen.cc1.worker_processe...

高并发场景下,Spring Cloud Gateway如何抗住百万QPS?

关注△mikechen△,十余年BAT架构经验倾囊相授!大家好,我是mikechen。高并发场景下网关作为流量的入口非常重要,下面我重点详解SpringCloudGateway如何抗住百万性能@m...

Kubernetes 高并发处理实战(可落地案例 + 源码)

目标场景:对外提供HTTPAPI的微服务在短时间内收到大量请求(例如每秒数千至数万RPS),要求系统可弹性扩容、限流降级、缓存减压、稳定运行并能自动恢复。总体思路(多层防护):边缘层:云LB...

高并发场景下,Nginx如何扛住千万级请求?

Nginx是大型架构的必备中间件,下面我重点详解Nginx如何实现高并发@mikechen文章来源:mikechen.cc事件驱动模型Nginx采用事件驱动模型,这是Nginx高并发性能的基石。传统...

Spring Boot+Vue全栈开发实战,中文版高清PDF资源

SpringBoot+Vue全栈开发实战,中文高清PDF资源,需要的可以私我:)SpringBoot致力于简化开发配置并为企业级开发提供一系列非业务性功能,而Vue则采用数据驱动视图的方式将程序...

Docker-基础操作_docker基础实战教程二

一、镜像1、从仓库获取镜像搜索镜像:dockersearchimage_name搜索结果过滤:是否官方:dockersearch--filter="is-offical=true...

你有空吗?跟我一起搭个服务器好不好?

来人人都是产品经理【起点学院】,BAT实战派产品总监手把手系统带你学产品、学运营。昨天闲的没事的时候,随手翻了翻写过的文章,发现一个很严重的问题。就是大多数时间我都在滔滔不绝的讲理论,却很少有涉及动手...

部署你自己的 SaaS_saas如何部署

部署你自己的VPNOpenVPN——功能齐全的开源VPN解决方案。(DigitalOcean教程)dockovpn.io—无状态OpenVPNdockerized服务器,不需要持久存储。...

Docker Compose_dockercompose安装

DockerCompose概述DockerCompose是一个用来定义和管理多容器应用的工具,通过一个docker-compose.yml文件,用YAML格式描述服务、网络、卷等内容,...

京东T7架构师推出的电子版SpringBoot,从构建小系统到架构大系统

前言:Java的各种开发框架发展了很多年,影响了一代又一代的程序员,现在无论是程序员,还是架构师,使用这些开发框架都面临着两方面的挑战。一方面是要快速开发出系统,这就要求使用的开发框架尽量简单,无论...

Kubernetes (k8s) 入门学习指南_k8s kubeproxy

Kubernetes(k8s)入门学习指南一、什么是Kubernetes?为什么需要它?Kubernetes(k8s)是一个开源的容器编排系统,用于自动化部署、扩展和管理容器化应用程序。它...

取消回复欢迎 发表评论: