• 黑羽压测 比 jmeter、locust、loadrunner 更简便,性能更强


    视频讲解


    点击下方链接,观看 讲解视频

    https://www.bilibili.com/video/av60089015/

    动机

    目前市场上对API接口做性能测试工具有 Jmeter、LoadRunner、AB、Locust等。

    白月黑羽用过之后,觉得它们各有优点和不足,总体不是很满意。

    所以 决定 自己开发一款免费的性能测试工具,希望集上面这些工具的优点,提供给大家使用。并且根据大家的反馈 不断的改进。

    大家有问题可以到白月黑羽官方网站 http://www.python3.vip 反馈。

    于是就有了 这款 HyLoad,中文名叫 黑羽压测

    特点

    黑羽压测 这款工具,立足 简单易用 和 性能强 两个特性。

    • 简单易用

      点击就可以产生 测试代码模板,修修改改 就能进行测试

    • 性能强

      单机可达 每秒 一万个请求,并发连接数可达 数万

    下载地址

    最新版本下载地址在官方网站  http://www.python3.vip/doc/tutorial/hyload/01/

    安装过程

    下载的是一个 自解压安装程序,直接拷贝到安装目录(比如 d: ools 目录)下,双击打开,就会解压出一个 HyLoad_1.x.x 的目录。

    进入该目录,双击可执行程序HyLoad.exe,即可运行 黑羽压测。

    黑羽压测 需要 监听获取性能统计数据,所以初次启动,Windows会有防火墙提示选择允许即可。

    image

    快速开始

    HyLoad做性能测试通常分为如下几步:

    第1步 创建项目

    HyLoad 的界面如下图所示

    image

    这个界面 就是让用户选择或者创建项目的。

    HyLoad 项目 就是一个目录,里面包含了性能测试的定义文件。

    点击 界面 新建项目按钮,在弹出界面 输入 项目的 目录名, 并且为项目选择上级路径。比如,下图所示

    image

    点击确定,上方就会出现当前的项目路径,如下所示

    image

    第2步 定义单个客户端行为

    点击左边菜单栏 这里,

    image

    定义单个客户端行为。

    性能测试是 模拟 大量的客户端大批量的发送请求消息 给 被测的服务器。

    那么,其中每个 客户端的行为 是怎样的? 需要我们先定义好。

    单个客户端行为定义好 以后, 我们在第3步只要指定产生 多少个 这样的客户端就可以了。

    首先,我们点击这里,添加一个客户端的行为定义。

    image

    这样会创建一个名为 act-1 的客户端的行为定义文件。

    客户端的行为定义 其实就是一段 Python代码。

    不会写Python代码的小朋友们,不用害怕,我们的工具会帮你自动产生代码哦。

    点击右边的这些栏目,就会产生 对应的代码。

    image

    大家可以按照上面的箭头所示,依次从上到下,点击3个条目,就会产生如下所示的代码

    # 创建客户端     
    client = HttpClient('127.0.0.1', # 目标地址:端口
                        timeout=10    # 超时时间,单位秒
                           ) 
    
    # 发送 GET 请求
    response = client.sendAndRecv(
        'GET',        # 请求方法 GET/POST/PUT/DELETE等
        "/api/path1"  # 请求URL
        )
            
    print(f"消息体字符串为 {response.string('utf8')} ") 

    显然,这是创建 客户端、发送请求给服务器、获取服务器响应消息体内容(如果是json格式的话)。

    注意,点击右边条目的时候,代码会插入在当前光标处,所以务必注意光标在编辑窗口中的位置。

    我们以新浪的股票接口为例,它的API 服务 url是 http://hq.sinajs.cn/list=sh601006

    最后list的值是股票代码。

    那么我们只要简单修改一下上面自动生成的代码,如下所示,注意注释的解释

    # 目标地址改为新浪服务器地址
    client = HttpClient('hq.sinajs.cn', 
                            timeout=10
                           ) 
    
    response = client.sendAndRecv(
        'GET',        
        "/list=sh601006"  # 请求URL修改
        )
    
    # 由于服务端返回的json格式数据是gbk编码
    # 所以改为gbk
    print(f"消息体字符串为 {response.string('gbk')} ") 

    这就是 客户端行为定义, 做好了以后,点击 右上方的运行按钮,就会先执行一下单个用户的测试。

    工具会打开终端窗口,运行该代码, 结果如下

    image

    当然,我们做性能测试,一个客户端,通常也是要反复地发送消息,这时,可以选择循环发送请求,

    image

    然后,修改一下代码,变成下面这样

    client = HttpClient('hq.sinajs.cn', 
                            timeout=10
                           ) 
    
    while True:
        response = client.sendAndRecv(
            'GET',
            "/list=sh601006", # 修改url
            duration=1 # 接收到响应后等待,确保本操作耗时1秒
        )
     

    这样的修改,就是要求这个客户端每隔一秒钟,发送一个 HTTP请求 给被测的服务器。

    第3步 定义性能测试场景

    单个客户端定义好了, 要做性能测试,只要点击左侧菜单栏这里,定义性能测试场景

    image]

    同样,点击下图处,添加一个性能场景定义。

    image

    然后,点击这里,插入 创建10个客户端 的示例代码

    image

    如下所示

    # 定义性能场景,点击右边条目,可自动插入功能代码
    
    createClient(
        'act-1', # 客户端名称
        10,      # 启动客户端数量
        0.1      # 每隔多少秒,启动一个客户端
        )

    当然,你可以自行修改客户端的数量。

    这里,如果就是10个客户端,每个客户端每秒发送一个请求,10个客户端就是每秒10个请求。

    随后,点击右上角运行按钮,就会打开一个窗口,按照我们的定义,运行该 性能测试了。如下

    image

    监控统计

    点击左边菜单栏的 监控统计 图标,可以查看本次性能测试的实时监控,如下所示

    image

    如果你想结束本次性能测试,只需要关闭 运行性能测试的命令行窗口即可。

    等整个性能测试结束,通常你需要产生这次性能测试的 统计图表,包括如下数据的图表

    • rps , 每秒发送请求数

    • tps , 每秒接收响应数

    • eps, 每秒错误响应数

    • tops, 每秒超时请求个数

    • avgresptime, 每秒平均响应时长

    这些统计数据, 都保存在项目的目录中的数据文件里面。

    只需要点击 数据文件统计按钮,然后选择刚刚产生的数据文件(文件名就是当前日期时间),如下所示

    image]

    这样,就会产生统计图,如下所示

    image

    你可以点击上图箭头处,将统计图最终存为图片,方便放到测试报告中。

  • 相关阅读:
    快速排序
    NDK获取android下sd card id
    NDK 获取android的imei和serial number
    要养成的c++代码编写风格:
    google代码风格(转)
    把ORM封装成一个类(linq to entity)
    【贪吃蛇—Java程序员写Android游戏】系列 1.Android SDK SampleSnake详解
    鼠标右键屏蔽
    asp.net生成静态页面
    visual studio快捷键大全
  • 原文地址:https://www.cnblogs.com/baiyueheiyu/p/11222005.html
Copyright © 2020-2023  润新知