电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

python 寫一個性能測試工具(一)

瀏覽:11日期:2022-07-07 11:14:08

國慶重新學習了一下go的gin高性能測試框架。

用JMeter來測試gin與flask接口的性能,差別很大。

為什么我自己不嘗試寫一個性能工具,性能工具的核心就是 并發 和 請求。

請求可以選擇Python的requests庫。

并發可以通過python的 進程、線程、協程模擬。

這么一想,也不是很難了,上手擼一個。

依賴庫

requests==2.22.0gevent==20.9.0numpy==1.19.2

requests 大家并不陌生,HTTP請求庫。

gevent是python協程庫,通過協程模擬并發更節省資源,在同樣配置下能模擬更多的并發。

numpy 是python的數據計算庫,提供大量組數和矩陣運算,這里用它求列表的平均值。

實現腳本

好了,接下來開始上手寫代碼了。

from __future__ import print_functionimport timeimport geventfrom gevent import monkeymonkey.patch_all()import requestsfrom numpy import meanusers = 10 # 用戶數numbers = 100 # 請求次數req_url = 'http://127.0.0.1:8080/user/tom' # 請求URLprint('請求URL: {url}'.format(url=req_url))print('用戶數:{},循環次數: {}'.format(users, numbers))print('============== Running ===================')pass_number = 0fail_number = 0run_time_list = []def running(url): global fail_number global pass_number for _ in range(numbers): start_time = time.time() r = requests.get(url) if r.status_code == 200: pass_number = pass_number + 1 print('.', end='') else: fail_number = fail_number + 1 print('F', end='') end_time = time.time() run_time = round(end_time - start_time, 4) run_time_list.append(run_time)jobs = [gevent.spawn(running, req_url) for _url in range(users)]gevent.wait(jobs)print('n============== Results ===================')print('最大: {} s'.format(str(max(run_time_list))))print('最小: {} s'.format(str(min(run_time_list))))print('平均: {} s'.format(str(round(mean(run_time_list), 4))))print('請求成功', pass_number)print('請求失敗', fail_number)print('============== end ===================')

設計思路

在JMeter中創建線程組有兩個參數 線程數和 循環數,即 用戶數 和請求數,設置多少個用戶,每個用戶用戶跑多少次,用戶數通過協程模擬,每次用戶運行次數通過for循環實現。

至于請求就比較簡單了,直接通過requests發送請求。通過判斷影響的狀態碼是否為200來判斷是否成功,通過分別計算成功和失敗的請求個數。

關于請求時間統計,在每次請求前后獲得當前時間戳,然后計算時間差就是單個接口的調用時間。最大,最小,平均通過計算就可輕松的得到。

> python3 ab.py請求URL: http://127.0.0.1:8080/user/tom用戶數:10,循環次數: 100============== Running ===================........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................============== Results ===================最大: 0.0352 s最小: 0.0036 s平均: 0.0204 s請求成功 1000請求失敗 0============== end ===================

后續

把ab.py腳本做成 ab 命令行工具。

支持更多的請求類型(get/post/put/delete)和參數。

更多統計維度,吞吐量、吞吐率

增加啟動時間,思考時間等

...

以上就是python 寫一個性能測試工具(一)的詳細內容,更多關于python 性能測試工具的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 多功能三相相位伏安表-变压器短路阻抗测试仪-上海妙定电气 | 微信聊天记录恢复_手机短信删除怎么恢复_通讯录恢复软件下载-快易数据恢复 | 安徽千住锡膏_安徽阿尔法锡膏锡条_安徽唯特偶锡膏_卡夫特胶水-芜湖荣亮电子科技有限公司 | 巨野电机维修-水泵维修-巨野县飞宇机电维修有限公司 | 今日热点_实时热点_奇闻异事_趣闻趣事_灵异事件 - 奇闻事件 | 水性绝缘漆_凡立水_绝缘漆树脂_环保绝缘漆-深圳维特利环保材料有限公司 | 时代北利离心机,实验室离心机,医用离心机,低速离心机DT5-2,美国SKC采样泵-上海京工实业有限公司 工业电炉,台车式电炉_厂家-淄博申华工业电炉有限公司 | 网站建设-网站制作-网站设计-网站开发定制公司-网站SEO优化推广-咏熠软件 | 房屋质量检测-厂房抗震鉴定-玻璃幕墙检测-房屋安全鉴定机构 | 收录网| 广西教师资格网-广西教师资格证考试网 | 进口便携式天平,外校_十万分之一分析天平,奥豪斯工业台秤,V2000防水秤-重庆珂偌德科技有限公司(www.crdkj.com) | 济南画室培训-美术高考培训-山东艺霖艺术培训画室 | 硫酸亚铁-聚合硫酸铁-除氟除磷剂-复合碳源-污水处理药剂厂家—长隆科技 | 沧州友城管业有限公司-内外涂塑钢管-大口径螺旋钢管-涂塑螺旋管-保温钢管生产厂家 | 固诺家居-全屋定制十大品牌_整体衣柜木门橱柜招商加盟 | 青岛成人高考_山东成考报名网 | UV-1800紫外光度计-紫外可见光度计厂家-翱艺仪器(上海)有限公司 | 气动绞车,山东气动绞车,气动绞车厂家-烟台博海石油机械有限公司 气动隔膜泵厂家-温州永嘉定远泵阀有限公司 | 瓶盖扭矩测试仪-瓶盖扭力仪-全自动扭矩仪-济南三泉中石单品站 | 上海小程序开发-小程序制作-上海小程序定制开发公司-微信商城小程序-上海咏熠 | 东亚液氮罐-液氮生物容器-乐山市东亚机电工贸有限公司 | 生物颗粒燃烧机-生物质燃烧机-热风炉-生物颗粒蒸汽发生器-丽水市久凯能源设备有限公司 | 光照全温振荡器(智能型)-恒隆仪器 | 芝麻黑-芝麻黑石材厂家-永峰石业 | 天津力值检测-天津管道检测-天津天诚工程检测技术有限公司 | YT保温材料_YT无机保温砂浆_外墙保温材料_南阳银通节能建材高新技术开发有限公司 | 北京森语科技有限公司-模型制作专家-展览展示-沙盘模型设计制作-多媒体模型软硬件开发-三维地理信息交互沙盘 | 南溪在线-南溪招聘找工作、找房子、找对象,南溪综合生活信息门户! | 变频器维修公司_plc维修_伺服驱动器维修_工控机维修 - 夫唯科技 变位机,焊接变位机,焊接变位器,小型变位机,小型焊接变位机-济南上弘机电设备有限公司 | 超声波气象站_防爆气象站_空气质量监测站_负氧离子检测仪-风途物联网 | 隐形纱窗|防护纱窗|金刚网防盗纱窗|韦柏纱窗|上海青木装潢制品有限公司|纱窗国标起草单位 | 塑钢课桌椅、学生课桌椅、课桌椅厂家-学仕教育设备首页 | 权威废金属|废塑料|废纸|废铜|废钢价格|再生资源回收行情报价中心-中废网 | 档案密集架_电动密集架_移动密集架_辽宁档案密集架-盛隆柜业厂家现货批发销售价格公道 | 中空玻璃生产线,玻璃加工设备,全自动封胶线,铝条折弯机,双组份打胶机,丁基胶/卧式/立式全自动涂布机,玻璃设备-山东昌盛数控设备有限公司 | 运动木地板厂家_体育木地板安装_篮球木地板选购_实木运动地板价格 | 电动球阀_不锈钢电动球阀_电动三通球阀_电动调节球阀_上海湖泉阀门有限公司 | 设计圈 - 让设计更有价值!| 杭州双螺杆挤出机-百科| 河南砖机首页-全自动液压免烧砖机,小型砌块水泥砖机厂家[十年老厂] |