【专业测试技能】全流程掌握:部署测试环境的策略与实践

简介: 本文分享了关于部署测试环境的策略与实践。文章讨论了部署测试环境的全过程,包括服务如MySQL、Redis、Zookeeper等的部署,以及解决服务间的依赖和兼容问题。文中还介绍了使用Jenkins、Docker等工具进行部署的方法,并通过实战案例讲解了如何创建和管理Jenkins Job、配置代理服务器Nginx、进行前后端服务的访问和优化。最后,作者强调了提问的重要性,并鼓励大家通过互联网解决遇到的问题。

一、前提概要

题主从事了10+年的测试岗位,来谈谈在公司如何整明白部署应用服务(环境)?因为在面试的时候,都会遇到提问:会部署测试环境吗?那你因为回答会吗?还是不会吗?不可能的,大多数测试人员从未完整的部署过测试环境,小公司由开发提供测试环境,大一点的公司可能还有运维,或者资深一点的测试大佬提供测试环境。先不卖关子了,部署环境其实应该包含了部署服务的全过程,如mysql、redis、zookeeper、rocketmq、activemq、java程序等等,它们单个看就是一个个的服务,但是组成一块作为一个完整的服务器所包含的,这就叫环境。然而最痛苦的不是部署一个个的服务,而是需要解决部署单个服务与系统、版本、依赖库之间所遇到的问题,或者是服务与服务之间的依赖/兼容问题。

二、隐藏的技能树

测试人员部署环境最应该掌握的技能,应该是熟练使用windows/linux系统下的操作指令及部署辅助工具的使用,如jenkins、docker可视化平台等等,例如某些需求,你需要知道jenkins在哪里配置系统环境变量、该使用哪个插件、如何分配用户权限、创建正确的job等等,以linux系统为例,掌握了它的基本操作指令,就需要进阶shell脚本开发,譬如部署java程序;复杂点的就是需要一键安装nginx\mysql\redis等等,那么如何才能掌握这几项技能呢?唯手熟尔!

三、实战出真知

  • jenkins这个工具呢,不出意外的话是部署在linux服务器的,且永不停机,所以也就断绝了部署在本机的可能,至于它的部署方式呢,这里介绍三种:
# a> 部署tomcat,将下载的jenkins.war包放置在tomcat/webapps目录下,启动tomcat服务即可;tomcat就会deploy部署jenkins服务,使用tomcat默认的8080端口即可访问jenkins服务;
# b> jenkins.war是个java项目,这个不要忘记了,那么它需要jvm虚拟机环境,所以它是可以通过java -jar jenkins.war来启动服务的;
# c> 这里需要说到docker容器,在linux服务器安装docker服务之后,就可以docker pull jenkins镜像,然后启动容器,这里不过多介绍,也实属这个方式最简单;但也免不了复杂;
# d> 应该还有第四种方式,那就是yum,但是需要找到对应linux系统版本的repo源,才能一键安装部署:yum install -r jenkins
[root@localhost /]# sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
[root@localhost /]# sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
[root@localhost /]# yum install fontconfig java-11-openjdk
[root@localhost /]# yum install jenkins
  • jenkins部署好了,接下来就是实操:创建job,前提需要准备很多插件,因为一开始的它并没有很多选择,如创建job的风格,一个自由风格的项目?
# a> 目前大多数后台是由java语言开发的,它的jar依赖也是由maven来托管的,所以maven风格的项目就需要有maven的插件;
# b> 同样对于个性化定制,如有你的项目团队是docker容器部署的服务,那还要jenkins支持docker的相关插件;
# c> 说道个性化定制,那么在每次构建的时候,服务git分支如何变更,参数化构建也是必不可少;
# d> 你的git仓库如何能被jenkins连接呢?是不是还需要git服务器呢?
# e> 前端项目不要忘了,它还有很多操作,nodejs环境少不了npm来构建部署前端项目。

对于高手而言,一个自由风格的job项目就够了,不管是前端还是后端,它都少不了插件的支持。
在这里插入图片描述

  • 你以为部署服务就这样结束了吗?还不够,顶多算完成了2/5,为啥?前后端服务你都能正确访问了吗?这里需要了解一个叫代理服务器的东西:nginx,静态代理、动态代理及更深层次的负载均衡。
# a> 安装nginx、配置nginx访问静态资源、动态资源。
location / {
   
   
        root /data/www/html/dist/ultrontech;
        index index.html index.htm;
        try_files $uri $uri/ /index.html;
    }

 location ^~/api {
   
   
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header Http-referer $http_referer;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    #if ($remote_addr = "113.19.32.129") {
   
   
        #   proxy_pass http://127.0.0.1:9101;
       #return 500 "服务在升级~~~";
    #}
        if ($http_user_agent ~* LWP::Simple|BBBike|wget|curl) {
   
   
            return 444;
        }
        proxy_pass http://servername;
    }
  • 前面两步干啥了?把git仓库的代码pull下来,并且通过前后端构建命令打包好,顶多移动到指定服务器目录下,这时还不能访问,所以结合第三步,需要构建job能到nginx配置能访问的目录。
# 初次部署服务、配置nginx,用到的两个命令:
[root@localhost /]# nginx -t # 测试配置文件是否正确,否则会给出错误的行
[root@localhost /]# nginx -s reload # 检查配置没问题之后,就需要重新加载配置文件,也就相当于重启nginx服务
  • 这时,该访问ip就访问ip,配置了有域名就访问域名,能正确渲染页面,请求到后台服务,那么部署测试环境就算是完成了;第三步只说前面完成了2/5,到这也没有完成整个1啊,姑且算个4/5。

  • 要求这么高吗?剩下的1/5体现在shell脚本、本地域名映射、以及需要做的一系列优化,如前面提到的job参数化构建、远程服务器配置等等操作。

四、总结一句话

看似简单的几个步骤,但是其中滋味只有真正去实践过才敢说知道,这可一点也不简单,有一句话很重要,即使你不知道,但一定要知道如何提问?因为如今的互联网能解决99%的问题,剩下的1%只不过是别人没分享出来而已。共勉吧!

相关文章
|
2月前
|
安全 Unix Linux
Metasploit Pro 4.22.7-2025050101 发布 - 专业渗透测试框架
Metasploit Pro 4.22.7-2025050101 发布 - 专业渗透测试框架
91 10
Metasploit Pro 4.22.7-2025050101 发布 - 专业渗透测试框架
|
3月前
|
安全 Ubuntu Linux
Metasploit Pro 4.22.7-2025042101 发布 - 专业渗透测试框架
Metasploit Pro 4.22.7-2025042101 (Linux, Windows) - 专业渗透测试框架
86 5
Metasploit Pro 4.22.7-2025042101 发布 - 专业渗透测试框架
|
2月前
|
存储 人工智能 测试技术
HarmonyOS Next~HarmonyOS应用测试全流程解析:从一级类目上架到二级类目专项测试
本文深入解析HarmonyOS应用测试全流程,涵盖从一级类目通用测试到二级类目专项测试的技术方案。针对兼容性、性能、安全测试及分布式能力验证等关键环节,提供详细实践指导与代码示例。同时,结合典型案例分析常见问题及优化策略,帮助开发者满足华为严苛的质量标准,顺利上架应用。文章强调测试在开发中的核心地位,助力打造高品质HarmonyOS应用。
127 2
|
2月前
|
安全 Unix Linux
Metasploit Pro 4.22.7-2025052201 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.7-2025052201 (Linux, Windows) - 专业渗透测试框架
66 5
Metasploit Pro 4.22.7-2025052201 (Linux, Windows) - 专业渗透测试框架
|
1月前
|
测试技术 Python
Python测试报告生成:整合错误截图,重复用例执行策略,调整测试顺序及多断言机制。
如何组织这一切呢?你可以写一本名为“Python测试之道”的动作指南手册,或者创建一个包含测试策略、测试顺序、多断言机制的脚本库。只要你的测试剧本编写得足够独到,你的框架就会像一位执行任务的超级英雄,将任何潜伏于代码深处的错误无情地揪出来展现在光天化日之下。这些整理好的测试结果,不仅有利于团队协作,更像冒险故事中的精彩篇章,带给读者无尽的探索乐趣和深刻的思考。
54 10
|
2月前
|
数据采集 安全 Linux
Metasploit Pro 4.22.7-2025051201 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.7-2025051201 (Linux, Windows) - 专业渗透测试框架
48 4
Metasploit Pro 4.22.7-2025051201 (Linux, Windows) - 专业渗透测试框架
|
2月前
|
缓存 测试技术 API
RESTful接口设计与测试实践
通过理解和实践上述原则和步骤,你就可以设计和测试你的RESTful接口了。最后,它可能会变成你为优化系统性能和用户体验所使用的重要工具,因为好的接口设计可以使得从服务器端到客户端的通信更加直接和有效,同时提升产品的使用体验和满意度。如此一来,写一个好的RESTful接口就变成一种享受。
121 18
|
3月前
|
监控 测试技术 数据库连接
利用 RunnerGo 深度探索 API 性能测试:从理论到实践
API性能测试是保障应用稳定性和用户体验的关键环节。本文详细探讨了如何使用RunnerGo全栈测试平台进行高效API性能测试,涵盖测试计划创建、场景设计、参数配置到执行与分析全过程。通过电商平台促销活动案例,展示了高并发下的测试策略与优化措施,如代码与数据库查询优化、数据库连接池扩容、服务器资源配置调整及缓存策略实施等。最终显著提升系统性能,满足高并发需求。API性能测试需持续关注与优化,以适应业务发展和用户需求变化。
135 33
|
1月前
|
消息中间件 缓存 监控
性能测试怎么做?方法、流程与核心要点解析
本文系统阐述了性能测试的核心方法论、实施流程、问题定位优化及报告编写规范。涵盖五大测试类型(负载验证、极限压力、基准比对、持续稳定性、弹性扩展)与七项关键指标,详解各阶段任务如需求分析、场景设计和环境搭建,并提供常见瓶颈识别与优化实战案例。最后规范测试报告内容框架与数据可视化建议,为企业级实践提出建立基线库、自动化回归和全链路压测体系等建议,助力高效开展性能测试工作。
|
3月前
|
存储 安全 Linux
Metasploit Pro 4.22.7-2025040601 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.7-2025040601 (Linux, Windows) - 专业渗透测试框架
135 1
Metasploit Pro 4.22.7-2025040601 (Linux, Windows) - 专业渗透测试框架