所以我正在开发一个小的 Python 工具来对应用程序的 API 进行压力测试。
我有一个使用线程的非常好的脚本,但后来我读到它需要手动编码来维护 n 个并发线程(意思是,旧线程完成后立即启动新线程),以及这里的建议:如何开始旧线程结束后的新线程?就是使用ThreadPool,我尝试如下:
def test_post():
print "Executing in " + threading.currentThread().getName() + "\n"
time.sleep(randint(1, 3))
return randint(1, 5), "Message"
if args.send:
code, content = post()
print (code, "\n")
print (content)
elif args.test:
# Create new threads
print threads
results_list = []
pool = ThreadPool(processes=threads)
results = pool.apply_async(test_post())
pool.close() # Done adding tasks.
pool.join() # Wait for all tasks to complete.
# results = list(pool.imap_unordered(
# test_post(), ()
# ))
# thread_list = []
# while threading.activeCount() <= threads:
# thread = LoadTesting(threadID=free_threads, name="Thread-" + str(threading.activeCount()), counter=1)
# thread.start()
# thread_list.append(thread)
print "Exiting Main Thread" + "\n"
else:
print ("cant get here!")
当我调用脚本时,我得到一致的输出,例如:
4
在主线程中执行
退出主线程
我不知道为什么......正如你在注释掉的块中看到的那样,我尝试了不同的方法,但它仍然只执行一次。
我的目标是让脚本循环运行,始终运行 n 个线程。在test_post(分别,post)函数返回的HTTP响应代码和内容-我想以后使用该打印/停止时响应代码是不是200 OK。
qq_笑_17
相关分类