广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python多线程http压力测试脚本
  • 712
分享到

python多线程http压力测试脚本

多线程脚本压力测试 2023-01-31 04:01:23 712人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

#coding=utf-8 import sys import time import thread import Httplib, urllib import random import uuid import logging

#coding=utf-8

import sys
import time
import thread
import Httplib, urllib
import random
import uuid
import logging
logging.basicConfig(level=logging.DEBUG,
                fORMat='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
                datefmt='%a, %d %b %Y %H:%M:%S',
                filename='测试脚本日志.log',
                filemode='w')

def log_uncaught_exceptions(exception_type, exception, tb):
    logging.critical(''.join(traceback.format_tb(tb)))
    logging.critical('{0}: {1}'.format(exception_type, exception))
sys.excepthook = log_uncaught_exceptions

#网关地址
addr="172.18.2.4"
port=8080
thread_count = 15 #单次并发数量
requst_interval = 10 #请求间隔(秒)
test_count = sys.maxsize #sys.maxsize  # 指定测试次数


#字段说明,必须一一对应
#login为空表示使用随机用户名

param_list=[
{"login":"user1","passWord":"qweqwe12"},
]

now_count = 0
lock_obj = thread.allocate()
def send_http():
    global now_count
    httpClient = None
    try:
        for user in user_list:
            tmp_user = user["login"]
            if tmp_user.strip() =='':
                tmp_user = str(uuid.uuid1()) + str(random.random())
            print tmp_user
            params = urllib.urlencode({"operationData":
                        [{"login": tmp_user,"password":user["password"]}]})
            headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}

            httpClient = httplib.HTTPConnection(addr, port, timeout=5)
            httpClient.request("POST", "/simple/spider.task.distribute", params, headers)

            response = httpClient.getresponse()
            print '发送数据: ' + params
            print '返回码: ' + str(response.status)
            print '返回数据: ' + response.read()

            logging.info('发送数据: ' + params)
            logging.info('返回码: ' + str(response.status))
            logging.info('返回数据: ' + response.read())
            #print response.getheaders() #获取头信息
            sys.stdout.flush()
            now_count+=1
    except Exception, e:
        print e
        logging.info(e)
    finally:
        if httpClient:
            httpClient.close()

def test_func(run_count):
    global now_count
    global requst_interval
    global lock_obj
    cnt = 0
    while cnt < run_count:
        lock_obj.acquire()
        print ''
        print '***************************请求次数:' + str(now_count) + '*******************************'
        print 'Thread:(%d) Time:%s\n'%(thread.get_ident(), time.ctime())

        logging.info(' ')
        logging.info('***************************请求次数:' + str(now_count) + '*******************************')
        logging.info('Thread:(%d) Time:%s\n'%(thread.get_ident(), time.ctime()))
        cnt+=1
        send_http()
        sys.stdout.flush()
        lock_obj.release()
        time.sleep(requst_interval)

def test(ct):
    global thread_count
    for i in range(thread_count):
        thread.start_new_thread(test_func,(ct,))

if __name__=='__main__':
    global test_count
    test(test_count)
    while True:
        time.sleep(100)

--结束END--

本文标题: python多线程http压力测试脚本

本文链接: https://www.lsjlt.com/news/187742.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python多线程http压力测试脚本
    #coding=utf-8 import sys import time import thread import httplib, urllib import random import uuid import logging...
    99+
    2023-01-31
    多线程 脚本 压力测试
  • Python实现的多线程http压力测试代码
    本文实例讲述了Python实现的多线程http压力测试代码。分享给大家供大家参考,具体如下: # Python version 3.3 __author__ = 'Toil' import sys, g...
    99+
    2022-06-04
    多线程 代码 压力测试
  • Kafka压力测试(自带测试脚本)(单机版)
            本次性能测试在正式环境下单台服务器上Kafka处理MQ消息能力进行压力测试。测试包括对Kafka写入MQ消息和消费MQ消息进行压力测试,根据10w、100w和1000w级别的消息处理结...
    99+
    2023-01-31
    自带 单机版 脚本
  • pgbench如何实现压力测试脚本
    这篇文章主要介绍pgbench如何实现压力测试脚本,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!创建测试表, 并填充数据  5000W 笔记录. pgbench&nb...
    99+
    2023-06-04
  • 并发数据库压力测试的shell脚本代码
    #!/bin/bash#********************************##并发后台运行fun ##for wanggy 2012-01-25 ...
    99+
    2022-06-04
    脚本 代码 数据库
  • 如何实现并发数据库压力测试的shell脚本代码
    这篇文章给大家分享的是有关如何实现并发数据库压力测试的shell脚本代码的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。代码如下:#!/bin/bash#******************************...
    99+
    2023-06-09
  • python 多线程与多进程效率测试
    目录1、概述2、代码练习3、运行结果1、概述 在Python中,计算密集型任务适用于多进程,IO密集型任务适用于多线程 正常来讲,多线程要比多进程效率更高,因为进程间的切换需要的资...
    99+
    2022-11-12
  • 脚本测试postman快速导出python接口测试过程示例
    Postman的脚本可以导出多种语言的脚本,方便二次维护开发。 Python的requests库,支持python2和python3,用于发送http/https请求 使用unitt...
    99+
    2022-11-12
  • python多线程性能测试之快速mock数据测试分析
    今天小编给大家分享一下python多线程性能测试之快速mock数据测试分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。安装...
    99+
    2023-07-02
  • 详解Python多线程Selenium跨浏览器测试
    前言 在web测试中,不可避免的一个测试就是浏览器兼容性测试,在没有自动化测试前,我们总是苦逼的在一台或多台机器上安装N种浏览器,然后手工在不同的浏览器上验证主业务流程和关键功能模块功能,以...
    99+
    2022-06-04
    多线程 详解 浏览器
  • python编写的多线程接口并发测试
    import requests import json import threading import time import uuid class postrequests(): def __init__(self): ...
    99+
    2023-01-31
    多线程 接口 测试
  • python多线程性能测试之快速mock数据
    目录背景安装相关类包快速 mock kafka 批量测试数据appmetrics 使用方法Meters背景 在我们测试工作中,性能测试也是避免不了的,因此在性能测试前期准备工作中,需...
    99+
    2022-11-11
  • 编写Python小程序来统计测试脚本的关键字
    通常自动化测试项目到了一定的程序,编写的测试代码自然就会很多,如果很早已经编写的测试脚本现在某些基础函数、业务函数需要修改,那么势必要找出那些引用过这个被修改函数的地方,有些IDE支持全文查找和引用查找,而...
    99+
    2022-06-04
    脚本 关键字 测试
  • 怎么进行Python多线程并发的简单测试
    怎么进行Python多线程并发的简单测试,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。之前也写了一些简单的Python程序,对于多线程的并发一直没有涉及,今天决定先突破一下...
    99+
    2023-06-04
  • python多线程测试接口性能,就是这么简单
    除了使用性能测试工具进行性能测试,我们也可以直接用python多线程进行性能测试。下面,使用这几个模块,对一个查询接口做性能测试:requests:发送http请求json:返回的字符串转换成json格式threading:多线程time:...
    99+
    2023-06-01
  • Python脚本实现内存泄漏测试的方法及解决过程
    Python脚本实现内存泄漏测试的方法及解决过程,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。我下面这篇文章提供了一种轻巧的内存泄漏测试方法及其python实现,该方法在L...
    99+
    2023-06-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作