`

Python: HTTP文件下载压力测试工具

 
阅读更多
import urllib.request
import os
import threading
import datetime
import time

class urlDownloadThread(threading.Thread):
    def __init__(self, threadName, url, targetFolder, targetFileName):
        threading.Thread.__init__(self)
        self.threadName = threadName
        self.url = url
        self.targetFolder = targetFolder
        self.targetFileName = targetFileName

    def run(self):
        print ("开始线程:",self.name);
        # 获得锁,成功获得锁定后返回 True
        # 可选的timeout参数不填时将一直阻塞直到获得锁定
        # 否则超时后将返回 False
        # threadLock.acquire()
        printLog(self.threadName, self.url)
        startTime = datetime.datetime.now()

        f = urllib.request.urlopen(self.url)
        data = f.read()
        
        with open(os.path.join(self.targetFolder, self.targetFolder+self.targetFileName),"wb") as f: f.write(data)

        finishTime = datetime.datetime.now()
        spendTime = finishTime-startTime
        printLog(self.threadName, spendTime)
        # 释放锁
        # threadLock.release()

    def __del__(self):
        print (self.name, "线程结束!")

def printLog(title, strLog):
    print ("[%s][%s]  %s" % (time.ctime(time.time()), title, strLog))


#url = 'https://firebasestorage.googleapis.com/v0/b/xac-download-site.appspot.com/o/applications%2Fcom.xacusa.xacpaymentbridge%2F1.0.20200331%2Fs_RP10V0331payment.apk?alt=media&token=dbc9f07f-810a-4a7c-a632-3ea6dd93449f'
#targetFolder = 'E:\\Download_Test\\'
#targetFileName = 'xacpaymentbridge'
#targetAttrName = '.apk'

url = 'https://firebasestorage.googleapis.com/v0/b/pzbp-tms-test-site.appspot.com/o/sppls%2Fsppl_ki853dbt3p01%2F1127_pzbp_os.zip?alt=media&token=214eefa5-57b3-47e1-a137-1cb790df3a3e'
targetFolder = 'E:\\Download_Test\\'
targetFileName = '2F1127_pzbp_os'
targetAttrName = '.zip'

counter = 2
threadLock = threading.Lock()
threads = []


while counter:
        #time.sleep(0.1)

        # 创建新线程
        singleThread = urlDownloadThread("Thread-"+str(counter),
                          url,
                          targetFolder,
                          targetFileName + str(counter) + targetAttrName)
        
        # 开启新线程
        singleThread.start()
        
        # 添加线程到线程列表
        threads.append(singleThread)

        counter -= 1


# 等待所有线程完成
for t in threads:
    t.join()

#TODO: 计算并统计相关测试数据
print ("主进程结束!")
分享到:
评论

相关推荐

    Python爬虫下载MP3文件

    Python爬虫下载MP3文件是网络数据获取技术在音频资源上的应用,主要涉及Python编程语言、网络爬虫技术和文件处理。下面将详细讲解这个过程,包括基础概念、关键技术和实践步骤。 首先,Python是一种广泛使用的高级...

    游戏 压力测试工具

    游戏压力测试工具是一种用于评估和优化游戏性能的重要软件,它可以帮助开发者和测试团队发现游戏在高负载条件下的问题,如卡顿、崩溃、内存泄漏等。这类工具通常模拟大量并发玩家,以测试服务器的稳定性和游戏客户端...

    Python-GoldenEye一个HTTPDoS测试工具

    在Python开发领域,测试工具如GoldenEye对于保障网络服务的稳定性和安全性至关重要。HTTP DoS攻击是通过发送大量的HTTP请求,使服务器不堪重负,从而导致正常用户无法访问服务。GoldenEye的目的就是帮助我们了解和...

    GPU服务器上显卡压力测试工具及测试方法介绍.pdf

    总之,Stree_GPU是一款方便易用的GPU/显卡压力测试工具,它可以帮助用户在Windows系统下充分挖掘GPU性能,及时发现潜在问题,对于服务器的维护和优化具有重要意义。通过严格的测试流程,可以确保GPU服务器在各种工作...

    PYLOT压力测试工具合集

    PYLOT压力测试工具合集是一组用于性能和负载测试的软件资源,主要针对Python环境。这个集合包含了几个关键组件,便于用户快速搭建压力测试环境。下面将分别介绍这些组件的作用和用途。 首先,wxPython2.8.7.1-win32...

    推荐5款网站压力测试工具 服务器压测工具对网站进行压力测试的工具.zip

    Pylot是一款基于Python的压力测试工具,专注于Web服务器的性能和负载测试。它可以自定义测试场景,模拟真实用户的行为,包括页面浏览顺序、停留时间等。Pylot的一大优点是能够生成图表报告,帮助分析测试结果。 ...

    接口压力测试工具可多线程

    以下是一些常用的接口压力测试工具: 1. JMeter:Apache JMeter是一款开源的、跨平台的压力测试工具,可以用于对静态和动态资源(如静态文件、Java Servlets、CGI脚本、Java对象、数据库和FTP服务器)进行负载和...

    基于python的接口自动化测试框架说明1

    为了解决这个问题,我们开发了一个轻量级的Python接口自动化测试框架,名为FreeTestGo,它能有效地减轻测试团队的压力,提高测试效率。 **一、框架特点** 1. **Python脚本编写**:基于Python3,无需额外工具,环境...

    新建文件夹-压力测试工具.zip

    接下来,我们谈谈一些常用的压力测试工具: 1. JMeter:Apache JMeter是一款开源的Java应用程序,用于进行负载和性能测试。它可以测试静态和动态资源(如静态文件、Java小服务程序、CGI脚本、Java对象、数据库和FTP...

    Python实现的多线程http压力测试代码

    此外,还可以考虑使用更专业的压力测试工具,如Apache JMeter或locust,它们提供了更丰富的功能和更高效的并发执行能力。 总结一下,Python实现的多线程HTTP压力测试代码利用了`threading`模块和`http.client`模块...

    Python-fsperf是围绕fio构建的文件系统性能测试框架

    fio(Flexible I/O Tester)是一款强大的I/O基准和压力测试工具,支持多种存储接口,包括块设备、文件系统、网络文件系统等。fio允许用户自定义工作负载,可以模拟各种读写模式,如顺序读写、随机读写等,适用于评估...

    Load runner与Python的Pdf教程

    【描述】LoadRunner是一款功能强大的企业级性能测试工具,主要用于模拟大量并发用户负载,以测试应用程序的稳定性和性能。而Python则是一种广泛应用的编程语言,以其简洁易学、丰富的库支持和强大的数据处理能力而...

    DataX_Python3.zip

    这包括单元测试、集成测试和压力测试,以验证DataX在Python3环境下的功能完整性和性能稳定性。测试场景应覆盖各种数据源的读写、不同数据类型的支持、并发执行以及错误处理等方面。 总结来说,将DataX从Python2移植...

    Python 抓取 图片 下载地址

    在Python编程领域,图片抓取是一项常见的任务,特别是在数据挖掘、网络爬虫和自动化测试等场景。本篇文章将深入探讨如何使用Python来抓取并下载网络上的图片。 首先,我们需要了解的是Python中的requests库,它是...

    pythontest:Python测试

    对于更复杂的性能测试,`pytest-performance`和`Apache JMeter`等工具可以进行负载和压力测试,评估系统的并发处理能力。 7. **静态代码分析**:使用静态代码分析工具如`Pylint`、`Flake8`和`mypy`(类型检查)可以在...

    Python-meteoraPy完成的web应用性测试工具

    Python-meteoraPy完成的web应用性测试工具是一款基于Python语言开发的自动化测试框架,专为Web应用程序设计。它提供了一套全面的功能,用于验证Web应用程序的性能、稳定性、功能和安全性。通过使用meteora-Py,...

    Python壁纸下载.zip

    对于动态加载的页面,可能需要借助`selenium`这样的自动化测试工具,它可以模拟浏览器的完整行为,包括执行JavaScript。 为了使这个工具适用于更多网站,开发者可能需要根据目标网站的结构和规则调整代码。例如,...

    pylot_1.26_压力测试

    以上是对PyLot 1.26压力测试工具可能包含的功能和应用场景的分析,具体使用方法和特性可以通过解压文件并查阅相关文档来获取更详细的信息。进行压力测试时,应结合业务需求和预期用户负载,制定合理的测试策略,确保...

    Linux版WEB网站压力测试工具locust使用教程

    Linux版的Web网站压力测试工具Locust是一款轻量级且高度可扩展的负载测试工具,专为模拟大量并发用户而设计。与传统的压力测试工具如LoadRunner和JMeter不同,Locust提供了一种事件驱动的模型,使得它更加灵活且易于...

Global site tag (gtag.js) - Google Analytics