美文网首页测试服务的设计与实现
开篇简述:Laser性能测试管理服务概述

开篇简述:Laser性能测试管理服务概述

作者: 念师 | 来源:发表于2020-03-21 09:51 被阅读0次

众所周知,性能测试是测试体系中至关重要的一环。如何有效、高效的进行性能测试其实是所有测试工程师需要掌握的必备技能之一。

为什么需要Laser性能测试管理服务

性能测试的有效性更多的集中在测试场景的构造,数据的分析等方面,不再本文的讨论范围。而我们今天主要想讨论的就是如何提升性能测试的效率,即如何高效的进行性能测试。而Laser性能测试管理服务正式基于这一目的开发的。

我们都知道,目前市场上已经有了各种各样的性能测试工具,例如基于Java开发的开源发压工具Jmeter,基于Python开发的开源发压工具Locust,以及HP公司的LoadRunner等等,每种发压工具在各自方法各有其优劣。那么Laser呢?Laser并不是一种新的发压工具,而是基于上述经典发压工具的上层管理服务,其主要目的是能够将整个压测过程实现一键化。

具体来说,Laser设计之初的目的是可以通过Laser进行一键式的压测任务管理,包括:发压池资源的统一管理与智能分配;压测前的数据准备工作;集群模式发压时多发压节点管理;压测启动;压测定时/指定条件停止;压测指标收集,压测报告展示等功能。也就是说,通过Laser你可以通过一条命令就进行一轮性能测试并获取到最终的测试报告。尤其是对于大型的性能测试场景(需要数百个发压节点),它的便捷性不言而喻。

如何接入Laser性能测试管理服务

那么应该如何接入Laser性能测试管理服务呢?上面提到了这么多的优点,接入是不是会非常复杂呢?
No!
Laser性能测试管理服务的接入非常简单,甚至可以说成是无成本的。
Laser从设计之初,就是用于管理和使用Locust、Jmeter等社区开源的发压工具的。因此,我们在兼容上格外注意,保证了与原生发压工具的完整兼容。
下面,我们以Locust方式接入为例进行介绍:

第一步:下载Laser的命令行工具:laser-cli
第二步:准备一个压测包(Locust的发压包,解压该发压包后可以通过一条命令直接启动压测任务即可)并上传至某个http / ftp的文件中心。
第三步:准备一个压测任务的配置文件./conf/demo.json,一个最简单的配置如下:

{
    "type": "cluster",
    "core_number": 20,
    "package_address": "http://www.missshi.cn/static/locust-demo.tar.gz",
    "workdir": "./press_script",
    "start_script": "locust -f ./locustfile.py ${locust-param} --host=http://www.missshi.cn",
    "baseenv_check_script": "python3 ./env_check.py",
    "cluster_prepare_script": "python3 ./cluster_prepare_script.py",
    "run_time": 120
"
}

下面,我们来简单讲解一下每个参数的函数:

  1. type:表示发压方式,有两个可选项,分别是single和cluster。其中,single表示单节点发压,cluster表示多节点的集群模式发压。
  2. core_number:表示发压节点的数量,当type选择为cluster时必填。发压节点的数量与发压端的发压能力息息相关,locust中每个发压节点最多使用1个CPU核进行工作。
  3. package_address:必填,用于指定压测脚本的包地址,要求包格式为.tar.gz格式。
  4. workdir:非必填,默认为压缩包解压后的当前目录,可以以当前目录为启动设置为解压包后内部的某个目录,如./xxx,不支持绝对路径。
  5. start_script:压测命令启动脚本,其中${locust-param}为服务的宏定义变量,用于在压测服务真实启动时替换相关端口,master节点地址等相关参数,必填。
  6. baseenv_check_script:选填,作用是再每个slave节点其中时,首先进行baseenv环境检查,判断是否满足必要依赖,例如可以用于检查压测脚本依赖的python第三方库,如果该命令返回码非0表示环境检查失败,不会该机器上启动slave节点。该参数不传或者为空时,表示不进行环境检查。
  7. cluster_prepare_script:选填,作用是用于压测脚本启动前的数据准备工作,正式启动流程中,如果该字段不为空,会首先执行该脚本,当脚本执行完成且退出码为0的前提下,才会启动对应的locust压测任务。
  8. run_time:选填,表示压测执行时长,单位为分钟,如果不填写,则压测需要人工触发停止,否则会始终运行。

第四步:执行如下命令启动发压任务即可:

./laser-cli job add missshi-demo1 --conf ./conf/demo.json

到此为止,我们就已经完成了Laser性能测试管理服务的接入的使用。

后续系列文章会一步步给大家剖析Laser性能测试管理服务的设计思想和实现原理,也欢迎大家一起交流~

相关文章

  • 开篇简述:Laser性能测试管理服务概述

    众所周知,性能测试是测试体系中至关重要的一环。如何有效、高效的进行性能测试其实是所有测试工程师需要掌握的必备技能之...

  • 2019-08-26

    公共服务-新对接服务 性能测试 目录 1. 概述.... 3 1.1 背景... 3 1.2 目标... 3 1....

  • 性能项目场景提取与指标分析

    一、性能测试的概述 通过并发工具请求服务器,提前发现性能问题,优化并解决。 实际工作中什么时候才需要做性能测试? ...

  • linux服务器性能测试脚本serverreview-bench

    概述 这个脚本是用来测试服务器性能的,在购买vps之后可以用来测试一下性能 安装和使用 项目地址 完整测试脚本。对...

  • 性能测试-服务端瓶颈分析思路

    《概述留记》概述:性能测试中,对服务端的指标监控也是很重要的一个环节。通过对各项服务器性能指标的监控分析,可以定位...

  • 接口测试工具——soapUI

    界面: 标签:接口测试,性能测试,开源 简述:SoapUI,著名的接口测试和性能测试工具,jav技术栈开发,UI精...

  • 性能&接口测试工具——jmeter

    界面: 标签:接口测试,性能测试,apache,开源 简述:jmeter,著名的软件性能测试工具,也可以用于接口测...

  • 性能测试简述

    一、 性能测试目的:发现性能瓶颈; 二、 性能测试分类: 1、 负载测试:通过逐步加压的方式,达到既定...

  • 性能测试概述--测试入门指导

    性能测试概述 性能测试基本概念 一、性能测试策略: 1.负载测试——load testing -在一定的软件、...

  • Ubuntu服务器性能测试脚本serverreview-benc

    概述 这个脚本是经常用来测试服务器性能尤其是Ubunut16.04的,在购买vps之后可以用来测试一下性能 安装和...

网友评论

    本文标题:开篇简述:Laser性能测试管理服务概述

    本文链接:https://www.haomeiwen.com/subject/avoeyhtx.html