Python+threading模块对单个接口进行并发测试

本文实例为大家分享了Python threading模块对单个接口进行并发测试的具体代码,供大家参考,具体内容如下

本文知识点

通过在threading.Thread继承类中重写run()方法实现定制输出结果

代码如下

import requests
import threading
import sys, io
# 解决console显示乱码的编码问题
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')

class Mythread(threading.Thread):
 """This class customizes the output thu overriding the run() method"""
 def __init__(self, obj):
 super(Mythread, self).__init__()
 self.obj = obj

 def run(self):
 ret = self.obj.test_search_tags_movie()
 print('result--%s:\n%s' % (self.getName(), ret))

class Douban(object):
 """A class containing interface test method of Douban object"""
 def __init__(self):
 self.host = 'movie.douban.com'
 self.headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0',
 'Referer':'https://movie.douban.com/',
 }

 def get_response(self, url, data):
 resp = requests.post(url=url, data=data, headers=self.headers).content.decode('utf-8')
 return resp

 def test_search_tags_movie(self):
 method = 'search_tags'
 url = 'https://%s/j/%s' % (self.host, method)
 post_data = {
  'type':'movie',
  'source':'index'
 }
 resp = self.get_response(url=url, data=post_data)
 return resp

if __name__ == '__main__':
 douban = Douban()
 thds = []
 for i in range(9):
 thd = Mythread(douban)
 thd.start()
 thds.append(thd)

 for thd in thds:
 thd.join()

运行结果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 详解python并发获取snmp信息及性能测试

    python & snmp 用python获取snmp信息有多个现成的库可以使用,其中比较常用的是netsnmp和pysnmp两个库.网上有较多的关于两个库的例子. 本文重点在于如何并发的获取snmp的数据,即同时获取多台机器的snmp信息. netsnmp 先说netsnmp.python的netsnmp,其实是来自于net-snmp包. python通过一个c文件调用net-snmp的接口获取数据. 因此,在并发获取多台机器的时候,不能够使用协程获取.因为使用协程,在get数据的时候,协程会

  • python实现接口并发测试脚本

    常用的网站性能测试指标有:并发数.响应时间.吞吐量.性能计数器等. 1.并发数 并发数是指系统同时能处理的请求数量,这个也是反应了系统的负载能力. 2.响应时间 响应时间是一个系统最重要的指标之一,它的数值大小直接反应了系统的快慢.响应时间是指执行一个请求从开始到最后收到响应数据所花费的总体时间. 3.吞吐量 吞吐量是指单位时间内系统能处理的请求数量,体现系统处理请求的能力,这是目前最常用的性能测试指标. QPS(每秒查询数).TPS(每秒事务数)是吞吐量的常用量化指标,另外还有HPS(每秒HT

  • python 多线程对post请求服务器测试并发的方法

    如下所示: # -*- coding: utf-8 -*- import requests import threading import time class postrequests(): def __init__(self): self.url = '请求网址' self.files = { 'unknown_image':open('刘诗诗.jpg','rb') } def post(self): try: r = requests.post(self.url,files=self.fi

  • python+ffmpeg视频并发直播压力测试

    通过python与ffmpeg结合使用,可生成进行视频点播.直播的压力测试脚本.可支持不同类型的视频流,比如rtmp或者hls形式. 通过如下方式执行脚本:python multiRealPlay.py [rtmp|http] [thread counts] [interval Time] [rtmp | http]:视频播放的不同形式 [thread counts]:并发线程数 [interval Time]:启动每个线程的间隔时间 代码: #!/usr/bin/python # -*- co

  • Python+threading模块对单个接口进行并发测试

    本文实例为大家分享了Python threading模块对单个接口进行并发测试的具体代码,供大家参考,具体内容如下 本文知识点 通过在threading.Thread继承类中重写run()方法实现定制输出结果 代码如下 import requests import threading import sys, io # 解决console显示乱码的编码问题 sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') clas

  • 使用Python paramiko模块利用多线程实现ssh并发执行操作

    1.paramiko概述 ssh是一个协议,OpenSSH是其中一个开源实现,paramiko是Python的一个库,实现了SSHv2协议(底层使用cryptography). 有了Paramiko以后,我们就可以在Python代码中直接使用SSH协议对远程服务器执行操作,而不是通过ssh命令对远程服务器进行操作. 由于paramiko属于第三方库,所以需要使用如下命令先行安装 2.安装paramiko pip install paramiko 3.常用方法 connect():实现远程服务器的

  • python threading模块的使用指南

    1. threding模块创建线程对象 接上述案例,我们可以利用程序阻塞的时间让程序执行后面的任务,可以用多线程的方式去实现.对应的需要我们借助threading模块去实现: 如下所示 import time import threading def work(): """只有函数对象才能佈田名线积""" print('5.洗茶杯: 1min ' ) time.sleep(1) print('6.放茶叶: 1min ' ) time.sleep(

  • Python threading模块中lock与Rlock的使用详细讲解

    目录 前言 1.Lock(互斥锁) 2.RLock(可重入锁) 前言 在使用多线程的应用下,如何保证线程安全,以及线程之间的同步,或者访问共享变量等问题是十分棘手的问题,也是使用多线程下面临的问题,如果处理不好,会带来较严重的后果,使用python多线程中提供Lock .Rlock .Semaphore .Event .Condition 用来保证线程之间的同步,后者保证访问共享变量的互斥问题. Lock & RLock:互斥锁,用来保证多线程访问共享变量的问题 Semaphore对象:Lock

  • 使用JMeter进行接口高并发测试的实现

    目录 官网 启动 操作步骤 一般的网络接口测试,功能性测试postman较为好用,需要测试高并发的情况下,可以用Jmeter来进行测试,postman是串行,而Jmeter可以多线程并行测试. 官网 Apache JMeter - Apache JMeter™ 启动 进入到安装目录的bin目录下,然后双击jmeter.bat 操作步骤 1.新建Test Plan,起名为接口高并发测试 2. 选中测试计划,添加线程组 (右键-->添加-->Threads(Users)-->线程组) 3.设

  • python threading模块操作多线程介绍

    python是支持多线程的,并且是native的线程.主要是通过thread和threading这两个模块来实现的.thread是比较底层的模块,threading是对thread做了一些包装的,可以更加方便的被使用.这里需要提一下的是python对线程的支持还不够完善,不能利用多CPU,但是下个版本的python中已经考虑改进这点,让我们拭目以待吧. threading模块里面主要是对一些线程的操作对象化了,创建了叫Thread的class.一般来说,使用线程有两种模式,一种是创建线程要执行的

  • Python pygorithm模块用法示例【常见算法测试】

    本文实例讲述了Python pygorithm模块用法.分享给大家供大家参考,具体如下: pygorithm:一个用纯粹python编写的Python模块,用于纯粹的教育目的.只需导入所需的算法即可获取代码,时间复杂度等等.开始学习Python编程的好方法.了解Python中所有主要算法的实现.不需要上网就可以获得所需的代码. 安装 pip3 install pygorithm 常见函数 斐波那契数列 from pygorithm.fibonacci import recursion resul

  • Python THREADING模块中的JOIN()方法深入理解

    看了oschina上的两个代码,受益匪浅.其中对join()方法不理解,看python官网文档的介绍: join([timeout]):等待直到进程结束.这将阻塞正在调用的线程,直到被调用join()方法的线程结束.(好难翻译,应该是这个意思) 哈哈,这个易懂. join方法,如果一个线程或者一个函数在执行过程中要调用另外一个线程,并且待到其完成以后才能接着执行,那么在调用这个线程时可以使用被调用线程的join方法. 复制代码 代码如下: #-*- encoding: gb2312 -*- im

  • Python threading模块condition原理及运行流程详解

    Condition的处理流程如下: 首先acquire一个条件变量,然后判断一些条件. 如果条件不满足则wait: 如果条件满足,进行一些处理改变条件后,通过notify方法通知其他线程,其他处于wait状态的线程接到通知后会重新判断条件. 不断的重复这一过程,从而解决复杂的同步问题. Condition的基本原理如下: 可以认为Condition对象维护了一个锁(Lock/RLock)和一个waiting池.线程通过acquire获得Condition对象,当调用wait方法时,线程会释放Co

  • Python多线程编程之threading模块详解

    一.介绍 线程是什么?线程有啥用?线程和进程的区别是什么? 线程是操作系统能够进行运算调度的最小单位.被包含在进程中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务. 二.Python如何创建线程 2.1 方法一: 创建Thread对象 步骤: 1.目标函数 2.实例化Thread对象 3.调用start()方法 import threading # 目标函数1 def fun1(num): for i in range(

随机推荐