python3 写的一个压测脚本(有待开发)
import requests
import queue
import threading
import time status_code_list = []
exec_time = 0
class MyThreadPool:
def __init__(self, maxsize):
self.maxsize = maxsize
self._pool = queue.Queue(maxsize)
for _ in range(maxsize):
self._pool.put(threading.Thread) def get_thread(self):
return self._pool.get() def add_thread(self):
self._pool.put(threading.Thread) def request_time(func):
def inner(*args, **kwargs):
global exec_time
start_time = time.time()
func(*args, **kwargs)
end_time = time.time()
exec_time = end_time-start_time return inner def get_url(url):
global status_code_list,x
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36',
}
response = requests.get(url,headers=headers)
code = response.status_code
status_code_list.append(code)
print(code)
return code def get_count(_url='http://10.0.0.141',_count=100):
'''
:param count: 每个线程请求的数量
'''
global status_code_list,url,count
for i in range(count):
get_url(url) def request_status():
count_num = len(status_code_list)
set_code_list = set(status_code_list)
status_dict = {}
for i in set_code_list:
status_dict[i] = str(status_code_list).count(str(i))
echo_str(count_num, set_code_list, status_dict) def echo_str(count_num,set_code_list,status_dict):
print('=======================================')
print('请求总次数:%s'%count_num)
print('请求时长:%s秒'%int(exec_time))
second_request = count_num/int(exec_time)
print('每秒请求约:%s次'%int(second_request))
print('状态码 | 次数') for k,v in status_dict.items():
print(str(k)+' | '+str(v))
print('=======================================') @request_time
def run(url,thread_num=10,thread_pool=10):
'''
:param thread_num: 总共执行的线程数(总的请求数=总共执行的线程数*没个线程循环请求的数量)
:param thread_pool: 线程池数量
:param url: 请求的域名地址
'''
global x,status_code_list
pool = MyThreadPool(thread_pool)
for i in range(thread_num):
t = pool.get_thread()
obj = t(target=get_count)
obj.start()
obj.join() if __name__ == '__main__':
count = 100 #单个线程的请求数
url = 'http://10.0.0.141'
run(url,100,100)
request_status()
#结果查看

python3 写的一个压测脚本(有待开发)的更多相关文章
- 手把手用Monkey写一个压测脚本
版权声明: 本账号发布文章均来自公众号,承香墨影(cxmyDev),版权归承香墨影所有. 允许有条件转载,转载请附带底部二维码. 一.为什么需要一个测试脚本? 昨天讲解了Android Monkey命 ...
- 一文揭秘测试平台中是如何将测试用例一键转化Jmeter压测脚本
接上篇,一键转化将接口测试平台测试用例转化成Jmeter压测脚本思路,这里我首先在java 上面做了一个简单的实验,看看 转化的中间遇到的问题,这里呢,我只是给了一个简单的demo 版本, ...
- JMeter扩展Java请求实现WebRTC本地音视频推流压测脚本
WebRTC是Web Real-Time Communication缩写,指网页即时通讯,是一个支持Web浏览器进行实时语音或视频对话的API,实现了基于网页的视频会议,比如声网的Agora Web ...
- jmeter压测脚本编写与静态文件处理
一.压测脚本编写 概述:工具为谷歌浏览器-->F12-->Network,访问被测站点,通过其中的请求的地方来构造压测脚本 二.静态文件处理 概述:静态文件包括css/js/图片等,它们有 ...
- 分享:写了一个 java 调用 C语言 开发的动态库的范例
分享:写了一个 java 调用 C语言 开发的动态库的范例 cfunction.h 代码#pragma once#ifdef __cplusplusextern "C" {#e ...
- 【原】shell编写一个简单的jmeter自动化压测脚本
在公司做压力测试也挺长时间了,每次测试前环境数据准备都需要话费较长时间,所以一直在考虑能不能将整个过程实现自动化进行,于是就抽空写了一个自动化脚本,当然这个脚本目前功能十分简陋,代码也不完善,很有很多 ...
- ab压力测试工具-批量压测脚本
ab(Apache benchmark)是一款常用的压力测试工具.简单易用,ab的命令行一次只能支持一次测试.如果想要批量执行不同的测试方式,并自动对指标进行分析,那么单靠手工一条一条命令运行ab,估 ...
- java编写jmeter压测脚本
目前项目中接触的比较多的是接口测试,功能测个差不多后会对部分接口进行压测,采用的是java编写脚本,导入jmeter进行压测. 使用到的jmeter的相关包 写一个测试类,继承AbstractJava ...
- 无界面运行Jmeter压测脚本 --后知者
原文作者---后知者 原文地址:http://www.cnblogs.com/houzhizhe/p/8119735.html [后知者的故事]:针对单一接口压测时出现了从未遇到的问题,设好并发量后用 ...
随机推荐
- shallow clone
shallow clone 浅克隆经常在一些大型仓库中很有用——不用花费大量时间去clone一个完整的仓库,仅仅checkout出来某个分支(如master)的最新N次递交: git clone -- ...
- C. Nice Garland
题意: 就是有一串灯分别颜色是R,G,B.要求将每种颜色的灯相隔2个不同的灯.比如,RGR变成RGB才叫好看. 分析: RGB有6种排列,分别是:"RGB", "RBG& ...
- shut immediate 数据库遭遇 ORA-24324 ORA-24323
SQL> shut immediateORA-24324: service handle not initializedORA-24323: value not allowedORA-27140 ...
- mysql安装-CentOS6下解压安装mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
删除已经安装版本 yum list installed mysql [root@localhost ~]# yum list installed mysql Loaded plugins: faste ...
- Qt中使用Boost库
关于boost库的编译,请看https://www.cnblogs.com/HackerArt/p/10539516.html 网上可以查到很多介绍qt使用库文件的教程,但是大多都没有注意到,qt中支 ...
- java OOM还在看log日志,兄弟你错的的很严重,正确方式是分析dump文件
目录 OOM异常--intsmaze 正确姿势dump文件分析--intsmaze 正确的姿势--intsmaze dump丢失打印--intsmaze 哪些内存溢出会产生dump文件--intsma ...
- 一些leetcode算法题
DFS算法 思想:一直往深处走,直到找到解或者走不下去为止 DFS(dep,...) // dep代表目前DFS的深度 { if (找到解或者走不下去了){ return; } 枚举下种情况,DFS( ...
- java 类与类,类与接口 ,接口与接口关系
类: 生活中类是人们对客观事物不断认识而产生的抽象概念,而对象则是现实生活中的一个个实体 面向对象程序设计中,对象是程序的基本单位,相似的对象像变量和类型的关系一样归并到一类,所以,并不先具体地定义对 ...
- Python常用内建方法:__init__,__new__,__class__的理解
python中所有类都是继承自object, 而object提供了很多原始的内建属性和方法,所以用户自定义的类在Python中也会继承这些内建属性.可以使用dir()函数可以查看,虽然python提供 ...
- codeforces#580 D. Kefa and Dishes(状压dp)
题意:有n个菜,每个菜有个兴奋值,并且如果吃饭第i个菜立即吃第j个菜,那么兴奋值加ma[i][j],求吃m个菜的最大兴奋值,(n<=18) 分析:定义dp[status][last],statu ...