亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

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

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

國(guó)慶重新學(xué)習(xí)了一下go的gin高性能測(cè)試框架。

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

為什么我自己不嘗試寫一個(gè)性能工具,性能工具的核心就是 并發(fā) 和 請(qǐng)求。

請(qǐng)求可以選擇Python的requests庫。

并發(fā)可以通過python的 進(jìn)程、線程、協(xié)程模擬。

這么一想,也不是很難了,上手?jǐn)]一個(gè)。

依賴庫

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

requests 大家并不陌生,HTTP請(qǐng)求庫。

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

numpy 是python的數(shù)據(jù)計(jì)算庫,提供大量組數(shù)和矩陣運(yùn)算,這里用它求列表的平均值。

實(shí)現(xiàn)腳本

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

from __future__ import print_functionimport timeimport geventfrom gevent import monkeymonkey.patch_all()import requestsfrom numpy import meanusers = 10 # 用戶數(shù)numbers = 100 # 請(qǐng)求次數(shù)req_url = 'http://127.0.0.1:8080/user/tom' # 請(qǐng)求URLprint('請(qǐng)求URL: {url}'.format(url=req_url))print('用戶數(shù):{},循環(huán)次數(shù): {}'.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('請(qǐng)求成功', pass_number)print('請(qǐng)求失敗', fail_number)print('============== end ===================')

設(shè)計(jì)思路

在JMeter中創(chuàng)建線程組有兩個(gè)參數(shù) 線程數(shù)和 循環(huán)數(shù),即 用戶數(shù) 和請(qǐng)求數(shù),設(shè)置多少個(gè)用戶,每個(gè)用戶用戶跑多少次,用戶數(shù)通過協(xié)程模擬,每次用戶運(yùn)行次數(shù)通過for循環(huán)實(shí)現(xiàn)。

至于請(qǐng)求就比較簡(jiǎn)單了,直接通過requests發(fā)送請(qǐng)求。通過判斷影響的狀態(tài)碼是否為200來判斷是否成功,通過分別計(jì)算成功和失敗的請(qǐng)求個(gè)數(shù)。

關(guān)于請(qǐng)求時(shí)間統(tǒng)計(jì),在每次請(qǐng)求前后獲得當(dāng)前時(shí)間戳,然后計(jì)算時(shí)間差就是單個(gè)接口的調(diào)用時(shí)間。最大,最小,平均通過計(jì)算就可輕松的得到。

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

后續(xù)

把a(bǔ)b.py腳本做成 ab 命令行工具。

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

更多統(tǒng)計(jì)維度,吞吐量、吞吐率

增加啟動(dòng)時(shí)間,思考時(shí)間等

...

以上就是python 寫一個(gè)性能測(cè)試工具(一)的詳細(xì)內(nèi)容,更多關(guān)于python 性能測(cè)試工具的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 精品日韩欧美一区二区三区在线播放 | 精品国产日韩亚洲一区在线 | 黄色免费一级 | 美女拍拍拍无遮挡 | 欧美日韩国产成人高清视频 | 久久精品女人毛片国产 | 欧美一级大片免费看 | 精品福利一区二区三区免费视频 | 国产在线观看美女福利精 | 视频办公室添的我好爽 | 成人欧美精品久久久久影院 | 国产成人h片视频在线观看 国产成人lu在线视频 | 日韩美女人体视频免费播放 | 成年人啪啪网站 | 亚洲最大成人综合网 | 精品在线91| 在线观看欧美国产 | 日本一级在线观看 | 国内精品视频在线观看 | 国产精品久久福利网站 | 国产11一12周岁女毛片 | 亚洲国产欧美在线 | 国产亚洲精品一区二区在线播放 | 在线麻豆国产传媒60在线观看 | 婷婷天堂 | 成人免费网站视频 | 亚洲最黄视频 | 毛色毛片免费观看 | 午夜影院小视频 | 朴妮唛1一30集福利在线播放 | 精品国产电影 | 国产一区二区三区四区在线观看 | 美女的下部隐私网站99 | 亚洲欧美另类国产综合 | 免费黄色短视频 | 国产日韩欧美在线一区二区三区 | 闫盼盼福利 | 在线播放日本爽快片 | 小明永久2015www永久免费观看 | 五月亭亭六月丁香 | 色综色天天综合网 |