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编程语言、网络爬虫技术和文件处理。下面将详细讲解这个过程,包括基础概念、关键技术和实践步骤。 首先,Python是一种广泛使用的高级...
游戏压力测试工具是一种用于评估和优化游戏性能的重要软件,它可以帮助开发者和测试团队发现游戏在高负载条件下的问题,如卡顿、崩溃、内存泄漏等。这类工具通常模拟大量并发玩家,以测试服务器的稳定性和游戏客户端...
在Python开发领域,测试工具如GoldenEye对于保障网络服务的稳定性和安全性至关重要。HTTP DoS攻击是通过发送大量的HTTP请求,使服务器不堪重负,从而导致正常用户无法访问服务。GoldenEye的目的就是帮助我们了解和...
总之,Stree_GPU是一款方便易用的GPU/显卡压力测试工具,它可以帮助用户在Windows系统下充分挖掘GPU性能,及时发现潜在问题,对于服务器的维护和优化具有重要意义。通过严格的测试流程,可以确保GPU服务器在各种工作...
PYLOT压力测试工具合集是一组用于性能和负载测试的软件资源,主要针对Python环境。这个集合包含了几个关键组件,便于用户快速搭建压力测试环境。下面将分别介绍这些组件的作用和用途。 首先,wxPython2.8.7.1-win32...
Pylot是一款基于Python的压力测试工具,专注于Web服务器的性能和负载测试。它可以自定义测试场景,模拟真实用户的行为,包括页面浏览顺序、停留时间等。Pylot的一大优点是能够生成图表报告,帮助分析测试结果。 ...
以下是一些常用的接口压力测试工具: 1. JMeter:Apache JMeter是一款开源的、跨平台的压力测试工具,可以用于对静态和动态资源(如静态文件、Java Servlets、CGI脚本、Java对象、数据库和FTP服务器)进行负载和...
为了解决这个问题,我们开发了一个轻量级的Python接口自动化测试框架,名为FreeTestGo,它能有效地减轻测试团队的压力,提高测试效率。 **一、框架特点** 1. **Python脚本编写**:基于Python3,无需额外工具,环境...
接下来,我们谈谈一些常用的压力测试工具: 1. JMeter:Apache JMeter是一款开源的Java应用程序,用于进行负载和性能测试。它可以测试静态和动态资源(如静态文件、Java小服务程序、CGI脚本、Java对象、数据库和FTP...
此外,还可以考虑使用更专业的压力测试工具,如Apache JMeter或locust,它们提供了更丰富的功能和更高效的并发执行能力。 总结一下,Python实现的多线程HTTP压力测试代码利用了`threading`模块和`http.client`模块...
fio(Flexible I/O Tester)是一款强大的I/O基准和压力测试工具,支持多种存储接口,包括块设备、文件系统、网络文件系统等。fio允许用户自定义工作负载,可以模拟各种读写模式,如顺序读写、随机读写等,适用于评估...
【描述】LoadRunner是一款功能强大的企业级性能测试工具,主要用于模拟大量并发用户负载,以测试应用程序的稳定性和性能。而Python则是一种广泛应用的编程语言,以其简洁易学、丰富的库支持和强大的数据处理能力而...
这包括单元测试、集成测试和压力测试,以验证DataX在Python3环境下的功能完整性和性能稳定性。测试场景应覆盖各种数据源的读写、不同数据类型的支持、并发执行以及错误处理等方面。 总结来说,将DataX从Python2移植...
在Python编程领域,图片抓取是一项常见的任务,特别是在数据挖掘、网络爬虫和自动化测试等场景。本篇文章将深入探讨如何使用Python来抓取并下载网络上的图片。 首先,我们需要了解的是Python中的requests库,它是...
而Jmeter则是一个开源的性能测试工具,尤其适合于压力测试,它能够模拟高并发场景,对系统性能进行评估。该项目通过jmeter脚本.jmx文件,允许用户利用Jmeter进行更为复杂的接口测试。 在自动化测试方面,该项目依托...
对于更复杂的性能测试,`pytest-performance`和`Apache JMeter`等工具可以进行负载和压力测试,评估系统的并发处理能力。 7. **静态代码分析**:使用静态代码分析工具如`Pylint`、`Flake8`和`mypy`(类型检查)可以在...
Python-meteoraPy完成的web应用性测试工具是一款基于Python语言开发的自动化测试框架,专为Web应用程序设计。它提供了一套全面的功能,用于验证Web应用程序的性能、稳定性、功能和安全性。通过使用meteora-Py,...
本文介绍的是一款基于Python语言开发的录音模块压力测试工具的设计源码,旨在通过发送语音包的方式评估录音服务的性能。该工具由22个文件组成,其中包含10个Python源代码文件,8个字节码文件,以及1个Git忽略文件、1...
对于动态加载的页面,可能需要借助`selenium`这样的自动化测试工具,它可以模拟浏览器的完整行为,包括执行JavaScript。 为了使这个工具适用于更多网站,开发者可能需要根据目标网站的结构和规则调整代码。例如,...