当前位置: 首页 > 编程笔记 >

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

傅正豪
2023-03-14
本文向大家介绍Python+threading模块对单个接口进行并发测试,包括了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()

运行结果

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

 类似资料:
  • 问题内容: 我有一段代码,我不知道如何进行单元测试!该模块使用urllib2从外部XML提要(twitter,flickr,youtube等)中提取内容。这是一些伪代码: 我的第一个想法是腌制响应并加载它以进行测试,但是显然urllib的响应对象是不可序列化的(它引发了异常)。 仅从响应主体保存XML是不理想的,因为我的代码也使用标头信息。它旨在作用于响应对象。 当然,在单元测试中依赖外部数据源是

  • 本文向大家介绍python threading模块操作多线程介绍,包括了python threading模块操作多线程介绍的使用技巧和注意事项,需要的朋友参考一下 python是支持多线程的,并且是native的线程。主要是通过thread和threading这两个模块来实现的。thread是比较底层的模块,threading是对thread做了一些包装的,可以更加方便的被使用。这里需要提一下的是

  • 我正在尝试合并jasmine的Matcher接口。该接口在jasmine命名空间内声明。 我创造了。d、 并添加了以下内容: 这是有效的,但是如果我尝试将导入语句添加到.d.ts文件中,它就不起作用。无法识别toBe成功函数。 我还试图将这部分代码添加到我的函数实现中,而不是d.ts文件中,但是命名空间的其他成员不再可用,例如在此代码中: CustomMatcher和CustomMatcherRe

  • 问题内容: 伙计们,我的模块中有很多python代码,这些模块位于多个python软件包中,现在我需要创建一个包含所有这些文件的python可执行模块或文件,因此它将在Windows和Linux服务器上运行。有哪些可能的解决方案,以及如何解决? 问题答案: 这就是鸡蛋文件的用途。请阅读以下内容:将python库/应用程序打包为.egg文件有什么好处?

  • 本文向大家介绍Python多线程编程(一):threading模块综述,包括了Python多线程编程(一):threading模块综述的使用技巧和注意事项,需要的朋友参考一下 Python这门解释性语言也有专门的线程模型,Python虚拟机使用GIL(Global Interpreter Lock,全局解释器锁)来互斥线程对共享资源的访问,但暂时无法利用多处理器的优势。在Python中我们主要是通

  • 我有一个示例方法(我需要编写测试用例)如下所示, 我想模拟getConfig方法并返回一个特定的字符串值。getConfig是Kotlin对象中方法,如下所示, 下面是我尝试的测试 我没有得到任何错误,但是getConfig方法没有被嘲笑。执行实际的实现。我也试过使用Powermockito。请帮帮我