freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

jxwaf性能测试报告
2020-08-13 20:27:35
所属地 广东省

你是否还在为自己一往无前而感到害怕?你是否还在大白天下而感到恐惧呢?不用怕不用怕!!!套上jxwaf,你就会感到丝滑柔顺,薄如蝉翼,给你的感觉就是没有套上去,你以为你没有用,其实你在用的这种恍恍惚惚的情绪将会围绕你的身后,给你无穷无尽的快乐。jxwaf就是这么好!!!

测试准备

测试架构

现在分别对三套架构进行压测对比,看看性能损耗是多少:

1、nginx-》bwapp

2、jxwaf-》nginx-》bwapp

3、jxwaf-》bwapp

测试环境

bwapp可以使用dockcer进行部署,并且对外访问是8888端口。

docker run -it -p 8888:80  docker.io/moeinfatehi/bwapp

安装完成之后,在浏览器打开http://IP:8888/install.php,点击here进行初始化安装。

nginx的话,直接反向代理到bwapp(127.0.0.1:8888)

server {
        listen       80 default_server;
        server_name  abc.test.com;
        root         /usr/share/nginx/html;

        include /etc/nginx/default.d/*.conf;

        location / {
        proxy_pass http://127.0.0.1:8888;
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }

jxwaf的安装部署可以参考这篇文章:https://www.freebuf.com/articles/es/242689.html

也就是把nginx的端口改成除80之外,jxwaf反向到nginx的端口上面,配置好域名指向即可。

测试脚本

Locust 是一个开源负载测试工具。使用 Python 代码定义用户行为,也可以仿真百万个用户。

我这边使用的域名是abc.test.com,自己根据自己的需要进行修改。我根据bwapp的接口定义了四个行为,登录、查询、设置以及注销

from locust import TaskSet, HttpLocust, task
from locust.clients import HttpSession


class WafTask(TaskSet):
    host = 'http://abc.test.com'
    session = None

    def on_start(self):
        payload = "login=bee&password=bug&security_level=0&form=submit"
        login_uri = "/login.php"

        self.session = HttpSession(self.host)

        response = self.session.post(url=self.host + login_uri, data=payload)

        print("LOGIN RESULT:", response.status_code)

    def on_stop(self):
        logout_uri = "/logout.php"
        self.session = HttpSession(self.host)
        response = self.session.get(url=self.host + logout_uri)
        print("LOGOUT RESULT:", response.status_code)
    @task
    def get_list(self):

        uri = "/portal.php"
        payload = "bug=2&form=submit"
        response = self.session.post(uri, data=payload.encode('utf-8'))

        print('查询结果 :', response.status_code)
        return response

    @task
    def set_level(self):

        uri = "/security_level_set.php"
        payload = "security_level=0&form=submit"

        response = self.session.post(uri, data=payload.encode('utf-8'))

        print('查询结果 :', response.status_code)
        return response


class BasicHttp(HttpLocust):
    task_set = WafTask
    min_wait = 5000
    max_wait = 9000
    host = 'http://abc.test.com'

单机模式运行

locust -f yace.py --host=

分布式运行

master

locust -f yace.py --host= --master

slave

import os
for i in range(1,80):
  os.system("cd /opt/ && locust -f yace.py  --host= --slave  > /tmp/"+str(i)+" 2>&1 & ")

之后访问 http://*:8089。可以看到我的已经启动了79个slave

性能测试数据

接下来会贴上二种测试指标,一种是三种架构从1k用户并发到1w用户并发的数据;另一种则是在7000这一个用户并发内(正常访问最高峰)测试三次,看看差异性。每次测试的时间为五分钟,其中咱们关注的Average response time(平均响应时间)和Requests/s(QPS)这两个指标,核心的数据,已经标黑处理。

指标一

先上图,再上表格数据。

平局响应时间,可以看到jxwaf一直处于低位,说明处理速度比nginx还快;并且如果后面有nginx的话,jxwaf传输到nginx那里,会对性能有所损耗。

QPS,jxwaf的QPS处于领先地位,很奇怪的是在nginx+jxwaf这种架构下,其QPS随着并发逐渐缓慢上升(笑哭不得)

1、nginx-》bwapp

TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php1000026038138135140133.02
GET/logout.php100001201143818840133.02
POST/portal.php2348601929131705401370.81
POST/security_level_set.php2345501928131688401370.72
NoneAggregated48941019371317054013147.56
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php2000036082917425740134.86
GET/logout.php200001301322322140134.86
POST/portal.php58010942037641724006140.91
POST/security_level_set.php58103802037645684007141.13
NoneAggregated1201131742052645684007291.76
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php30000620120913713940138.51
GET/logout.php3000013013618120240138.51
POST/portal.php74946021501472844013212.61
POST/security_level_set.php74233021511474654013210.59
NoneAggregated155179022751374654013440.22
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php4000211001618167467401211.97
GET/logout.php40000180199193214401311.97
POST/portal.php92655325701589954012277.22
POST/security_level_set.php93488225711489714012279.71
NoneAggregated1941437251051489954012580.86
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php500004909831415146401316.54
GET/logout.php50000150316197621401316.54
POST/portal.php99798015036418152564013330.23
POST/security_level_set.php99900015036517153504013330.57
NoneAggregated209698015037814153504013693.89
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php6000059013181931267401321.37
GET/logout.php60000130220203410401321.37
POST/portal.php110134012038616172504013392.17
POST/security_level_set.php110236012038816175094013392.53
NoneAggregated232370013040716312674013827.43
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php7000074016332031768401319.58
GET/logout.php70000180375198415401319.58
POST/portal.php1448752630116916347434012405.19
POST/security_level_set.php1451632630117816347464012406
NoneAggregated3040384610116616347464012850.34
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php80009073009635661236399813.64
GET/logout.php8000928010891967552401213.64
POST/portal.php213867522180032086921054012364.57
POST/security_level_set.php212682484180031987933054012362.55
NoneAggregated4425491105180032816933054011754.39
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php900073130034581862334401017.82
GET/logout.php90001146017152063893401217.82
POST/portal.php16956015392500478940956624010335.64
POST/security_level_set.php16909614812500477039957054010334.72
NoneAggregated35665631042400466918957054010705.99
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php10000233170055181563898400515.5
GET/logout.php100004151022252267430401115.5
POST/portal.php209533397830006424331155564006324.71
POST/security_level_set.php210151400530006423341052444006325.67
NoneAggregated439684825729006308151155564006681.37

2、jxwaf-》nginx-》bwapp

TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php1000019047840307540132.79
GET/logout.php100001201162519340132.79
POST/portal.php2534902232163179401370.74
POST/security_level_set.php2543002233163035401370.97
NoneAggregated52779023431631794013147.29
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php2000038089630706840137.49
GET/logout.php200001601692734840137.49
POST/portal.php37598024541670494013140.76
POST/security_level_set.php37108024511748254013138.93
NoneAggregated78706024771670684013294.66
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php300011200189825758840127.38
GET/logout.php3000020021825143540137.38
POST/portal.php848430551222083054013208.77
POST/security_level_set.php844391551222291754012207.77
NoneAggregated1752822571542091754012431.31
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php40000800921164363401310.4
GET/logout.php40000220314264700401310.4
POST/portal.php10077102804572494744013261.97
POST/security_level_set.php10084802804562489714013262.17
NoneAggregated20961902904621694744013544.93
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php5000285013421617020401212.39
GET/logout.php50000260491249176401312.39
POST/portal.php1213130620101024315594013300.73
POST/security_level_set.php1210771620101023362744012300.14
NoneAggregated2523903610100616362744012625.66
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php60001140021822161522401213.96
GET/logout.php60000290702249180401313.96
POST/portal.php123083552000277664704184011286.28
POST/security_level_set.php123278622000279550774894011286.74
NoneAggregated2583611181900272321774894011600.93
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php70000110015591811575401314.58
GET/logout.php7000054012192823604401314.58
POST/portal.php143104822700356551719284011298.12
POST/security_level_set.php143647732700356033692044011299.26
NoneAggregated3007511552700346218719284011626.55
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php80009140024111862864400913.19
GET/logout.php8000679022682464687401213.19
POST/portal.php1732434953500511835967054007285.55
POST/security_level_set.php17302847435005088301226874007285.19
NoneAggregated36227198434004981181226874007597.11
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php900054230052992163928400214.38
GET/logout.php9000374022022594922401214.38
POST/portal.php18974853842005749411228024006303.21
POST/security_level_set.php19042651642005745431000404007304.29
NoneAggregated398174111141005657211228024006636.26
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php1000063190046202564665399715.06
GET/logout.php100000100022222764299401315.06
POST/portal.php2193271255000573645724704011330.37
POST/security_level_set.php218455965000571739737124012329.05
NoneAggregated4577822844900562625737124011689.55

3、jxwaf-》bwapp

TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php1000014038218110340132.72
GET/logout.php10000100992816640132.72
POST/portal.php2670401925121208401372.58
POST/security_level_set.php2595601925121358401370.54
NoneAggregated54660019331213584013148.56
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php2000023078415425940135.36
GET/logout.php200001201142520540135.36
POST/portal.php53059020381443914013142.08
POST/security_level_set.php53062020381442684013142.09
NoneAggregated110121020531443914013294.89
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php3000033098716708440138.6
GET/logout.php3000013013220119340138.6
POST/portal.php73954021481472184013212
POST/security_level_set.php73802021471472254013211.56
NoneAggregated153756021681472254013440.76
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php400004901379197454401310.47
GET/logout.php40000130186203883401310.47
POST/portal.php106566021601389764013278.91
POST/security_level_set.php105993021611386374013277.41
NoneAggregated220559021871389764013577.25
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php50006140027112815308400812.87
GET/logout.php50000170219167195401312.87
POST/portal.php13228514412415163284012340.38
POST/security_level_set.php13245104412616163744013340.8
NoneAggregated27473674517415163744012706.91
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php6000044012421415080401315.67
GET/logout.php60000130162182528401315.67
POST/portal.php15644413019614162994012408.66
POST/security_level_set.php15661103019414161784013409.09
NoneAggregated32505513121414162994012849.09
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php70002110023311916434401217.08
GET/logout.php700002004331716727401317.08
POST/portal.php178539034069218228654013435.56
POST/security_level_set.php179589034069418313504013438.13
NoneAggregated372128234071917313504012907.85
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php800020160043871975299400417.25
GET/logout.php800003909181963517401317.25
POST/portal.php172542331600290133928794012372.07
POST/security_level_set.php1723102716002911331201114012371.57
NoneAggregated3608528016002895191201114012778.15
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php90004160059351875659401118.28
GET/logout.php900002405291560158401318.28
POST/portal.php189938151700263212789444012385.8
POST/security_level_set.php189724717002630131252764012385.37
NoneAggregated3976622617002659121252764012807.73
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php100002130040251562828401217.3
GET/logout.php10000038011242163482401317.3
POST/portal.php2509152423003402281232464012434.16
POST/security_level_set.php2508572723003401281220644012434.06
NoneAggregated5217725322003370151232464012902.82

指标二

平均响应时间,以承受最高7K用户并发重复测试三次,可以看到排除最高的第三次,可以看到jxwaf处理的速度更加快。

QPS,以承受最高7K用户并发重复测试三次,可以看到jxwaf的QPS是最高的。

1、nginx-》bwapp

TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php7000173015221433237401217.21
GET/logout.php70000220463207428401317.21
POST/portal.php1615182750142417360534012397.04
POST/security_level_set.php1616173750142718480814012397.29
NoneAggregated3371356730140714480814012828.74
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php70003110022422031662401217.09
GET/logout.php700001904602210739401317.09
POST/portal.php1615467980151620638134012394.43
POST/security_level_set.php16108781000151319612104012393.31
NoneAggregated33663318940150719638134012821.93
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php70000150021282432230401316.61
GET/logout.php70000330712259720401316.61
POST/portal.php14583432000237536347034012345.94
POST/security_level_set.php14627542000236743333334012346.99
NoneAggregated30610971900232724347034012726.14

2、jxwaf-》nginx-》bwapp

TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php700010150040633652552401214.24
GET/logout.php7000049013032761074401314.24
POST/portal.php169133721700228449773444012344.02
POST/security_level_set.php168705701700227952973894012343.14
NoneAggregated3518381521700229827973894012715.64
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php70003160030832360676401214.06
GET/logout.php7000255013602561963401214.06
POST/portal.php159543352300293438717344012320.35
POST/security_level_set.php159235352300293144714214012319.73
NoneAggregated332778752200290223717344012668.19
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php70000150021282432230401316.61
GET/logout.php70000330712259720401316.61
POST/portal.php14583432000237536347034012345.94
POST/security_level_set.php14627542000236743333334012346.99
NoneAggregated30610971900232724347034012726.14

3、jxwaf-》bwapp

TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php700016160041342161667400515.64
GET/logout.php700003107522162237401315.64
POST/portal.php1524061614002493191211344012340.61
POST/security_level_set.php1528202414002482201207574012341.54
NoneAggregated3192265614002485191211344012713.44
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php70004110021691715932401117.52
GET/logout.php70000210344226047401317.52
POST/portal.php176717029061515189804013442.29
POST/security_level_set.php176638029061114311104013442.09
NoneAggregated367355429063814311104012919.42
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php7000089019402215870401316.9
GET/logout.php700002504101832051401316.9
POST/portal.php17014922540111915755514012410.81
POST/security_level_set.php17066215540111715763324012412.05
NoneAggregated35481137530112015763324012856.67

想要excel文档的话,关注并且私信!!

# 企业安全 # JXWAF
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者