性能测试的环境搭建——大话性能测试(11)

发表于:2022-6-29 10:02

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:胡通    来源:51Testing软件测试网原创

#
Jmeter
分享:
  1.2.4性能测试的环境搭建
  性能测试环境一般情况下都是搭建在Linux服务器上的,那么就有必要掌握一些常用的Linux命令和搭建性能测试环境的原则。另外,本书还分析和总结了不同级别的项目的性能测试环境搭建解决方案,供读者借鉴,希望对读者有所启迪。本节首先讲解Linux服务器上最基础的操作命令和知识要点,然后强调环境搭建的一些原则。
  1.基础常用的Linux命令
  (1)压缩/解压文件。安装部署源码,下载的安装包都是压缩过的文件。Linux中的打包文件一般是以.tar结尾的,压缩文件一般是以.gz结尾的。一般情况下打包和压缩是一起进行的,打包并压缩后的文件的后缀名一般是.tar.gz,打包和压缩文件命令格式为“tar-zcvf打包压缩后的文件名要打包压缩的文件”,其中,选项的含义如下:
  -z用于调用gzip压缩命令进行压缩;
  -c用于打包文件;
  -V用于显示运行过程;
  -f用于指定文件名。
  例如,test目录下有3个文件分别是aaa.txt、bbb.txt和ccc.txt。如果要打包成1个文件并指定压缩后的压缩包名称为test.tar.gz,则可以使用命令tar-zcvftest.tar.gzaaa.txtbbb.txtccc.txt或tar-zcvftest.tar.gz/test/来实现。
  解压压缩包命令格式为"tar[-xvf]压缩包",其中,x表示解压。
  例如,将test目录下的test.tar.gz解压到当前目录下,可以使用命令tar-xvftest.tar.gz,将test目录下的test.tar.gz解压到根目录usr下,可以使用命令tar-xvftest.tar.gz-C/usr(-C表示指定解压的位置)。
  (2)复制移动。修改目录名称命令格式“mv目录名称新目录名称”。
  mv命令用来对文件、目录和压缩包等重新命名,或者将文件从一个目录下移到另一个目录下。复制目录命令格式为“cp-r目录名称目录复制的目标位置",其中,-r表示递归复制。
  cp命令不仅可以用来复制目录,还可以用来复制文件、压缩包等,复制文件和压缩包时不用写-r递归。删除目录命令格式为“rm[-rf]目录名称。”
  rm命令不仅可以用来删除目录,也可以用来删除文件或压缩包,为了减轻大家的记忆负担,作者建议无论删除任何目录或文件,都直接使用“rm-rf目录/文件/压缩包”(注意,加了f选项会强制删除,并不会出现提醒消息)。
  (3)进程和端口管理。ps-ef和psaux这两个命令都是用来査看当前系统正在运行的进程,两者的区别是展示格式不同。如果想要查看特定的进程可以使用这样的命令psaux|grepredis(査看包括Redis字符串的进程)。
  注意,如果直接用ps命令,会显示所有进程的状态,通常结合grep命令査看指定进程的状态。在使用Linux过程中,需要了解当前系统开放了哪些端口,并且要査看开放这些端口的具体进程和用户,我们可以通过netstat命令进行简单査询。
  netstat命令各个参数选项说明如下。
  -t表示显示TCP端口。
  -u表示显示UDP端口。
  -1表示仅显示监听套接字,套接字是使应用程序能够读写与收发通讯协议、资料的程序。
  -p表示显示进程标识符和程序名称,每一个套接字/端口都属于一个程序。
  -n表示不进行DNS轮询,显示IP,这可以提升査询速度。
  通常与grep结合可查看某个具体端口或服务使用情况。示例如下:
  假设我们想査找端口3306对应的服务是什么,一般可以这么做。
  首先通过lsof-i:3306或者netstat-ntulp|grep3306査出对应的pid:
  或者使用如下netstat命令∶
  找到pid后,通过ps-auxIgrep16422即可找到对应具体的进程服务:
  (4)修改配置。vim编辑器是Linux中的强大组件,是vi编辑器的加强版。vim编辑器的命令
  和快捷方式有很多,这里仅列出一些常用命令。
  在实际部署环境中,使用vim编辑器的主要作用就是修改配置文件,一般步骤是:通过vim文件命令进入文件的命令模式,按I键进入编辑模式,编辑文件后按Esc键进入底行模式,最后,输入wq或q!(输入wq代表写入内容并退出,即保存;输入q!代表强制退出且不保存。)
  用vim编辑器打开一个文件刚开始进入的就是命令模式,在这个模式下我们可以控制光标的移动,字符、行的删除,移动复制某段区域。在该模式下可以进入插入模式或编辑模式,也可以进入底行模式。vi命令模式的转换方法见表1-1。
表1-1vi命令模式的转换方法
  (5)修改文件权限。操作系统中每个文件都拥有特定的权限、所属用户和所属组。权限是操作系统用来限制资源访问的机制。在Linux中权限一般分为可读(readable可写(writable)和可执行(excutable)共3组,分别对应文件的属主(owner)、属组(group)和其他用户(other)。通过这样的机制来限制哪些用户、哪些组可以对特定的文件进行哪些操作。通过Is-1命令我们可以査看某个目录下的文件和目录的权限。
  文件和目录的类型表示如下。
  d表示目录。
  -表示文件。
  1表示链接(可以看作Windows中的快捷方式)。
  在Linux中权限分为以下几种。
  r表示权限是可读,r也可以用数字4表示。
  w表示权限是可写,w也可以用数字2表示。
  x表示权限是可执行,x也可以用数字1表示。
  而对于文件和目录,不同权限对应的可执行操作不同,具体区别见表1-2。
表1-2文件和目录的权限与可执行操作
  在Linux中的每个用户必须属于一个组,不能独立于组外。在Linux中每个文件有所有者、文件所在组和其他组的概念。
  所有者:一般为文件的创建者,即谁创建了该文件就自然成为该文件的所有者。用Is-ahi命令可以看到文件的所有者,也可以使用“chown用户名文件名"来修改文件的所有者。
  -文件所在组:当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组。用Is-ahi命令可以看到文件的所在组,也可以使用“chgrp组名文件名"来修改文件的所在组。
  -其他组:除了文件的所有者和所在组的用户,系统的其他用户所在组都是文件的其他组。
  那么,如何修改文件或目录的权限?修改文件或目录的权限的命令为chmodo
  下面举个例子,修改test目录下的aaa.txt的权限为属主有全部权限,属主所在的组有读写权限,其他用户只有读的权限,命令如下:
  上述示例还可以使用数字表示:chmod764aaa.txto
  以上是必须要掌握的相关命令和知识点,其他更多的命令只能靠平时一点一滴地积累了。
  2.环境搭建的原则
  在掌握了上面最基础的服务器操作命令和知识点后,我们就可以开始搭建各个中间件了。性能测试环境的搭建和选取有一些原则,如何尽可能地模拟真实环境,是需要总结和思考的。有些公司的环境搭建由专门的运维人员负责,但是作者认为如果有权限或者公司允许,学会自己搭建性能测试环境还是很有必要的。通过搭建环境可以进一步熟悉系统的架构和请求流经的各个中间件,这对于问题的定位比较有帮助。总的原则是尽可能地和线上真实环境保持一致。
  (1)新项目。对于第一次上线的新项目,我们可以直接在这个预发布的环境上进行测试,因为不会涉及和影响真实用户。
  (2)老项目。对于已经有真实用户在使用的项目,我们需要根据系统规模的大小和公司资源的情况有针对性地、灵活地搭建性能测试环境。
  小集群。如果项目涉及的服务器数目比较少(1~5台),那么一般情况下都会按照完全复制线上环境的服务器配置的方式搭建性能测试环境,部署各个中间件。待性能测试结束后,回收释放资源,提高服务器利用率。
  大集群。如果项目涉及的服务器数目比较多(多于5台),可以根据一些原则进行配置缩放。例如,涉及数据库的服务器配置保持一致,而涉及应用服务部署的服务器,我们可以根据其压力评估情况进行配置缩放或者几个应用复用一台服务器。为什么可以这样做呢?因为根据经验,在数据库没出现瓶颈的理想情况下,系统的处理能力通过扩展应用服务器是可以线性增长的,所以基于这个原理进行性能测试环境搭建。在性能测试结束后,需要按照比例系数估算线上的性能容量能力。
  以上就是作者在从事大大小小的性能测试项目后,思考提炼出的性能测试环境搭建原则。当然,如果公司经济条件允许,那么完全复制线上环境的服务器配置得到的性能测试结果是最为真实的。
  提示
  读者可以自己尝试做一些Docker的容器化镜像,方便复用,一劳永逸。
  像阿里这种大团队可能会采用线上环境直接压测,并利用一些标签(每个请求有tag标识)和使用配套的支撑平台等技术手段,使测试环境更加真实,成本更低,但是技术要求也更高。
版权声明:51Testing软件测试网获得作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号