用webscrapig对网站进行压力测试

时间:2018-05-02 03:29:39

标签: python web-scraping beautifulsoup stress-testing

我的朋友通过node.js写了一个网站,我想帮他做压力测试,以防有一天崩溃。我用beautifulsoup来测试它,它进展顺利。

代码:

for i in range(0,1000):
    #i=i+1
    l=randint(2008, 2018)
    first="year=%d" %l
    k=randint(1600, 2400)
    second="cc=%d" %k
    url="http://xx.xxx.xxx.xxx:xxxx/outputData?{0}&{1}&submit=Submit".format(first,second)
    res = requests.get(url)
    soup=BeautifulSoup(res.text,'lxml')
    print(soup) 

如果我想通过使用python同时使用1000个代码同时运行它,有没有其他方法来测试它,而不是按顺序逐个运行1000次?谢谢!

2 个答案:

答案 0 :(得分:2)

您可以使用threading执行此操作。但我不建议创建1000个线程并同时运行它。

import threading
def testit():
    l=randint(2008, 2018)
    first="year=%d" %l
    k=randint(1600, 2400)
    second="cc=%d" %k
    url="http://xx.xxx.xxx.xxx:xxxx/outputData?{0}&{1}&submit=Submit".format(first,second)
    res = requests.get(url)
    soup=BeautifulSoup(res.text,'lxml')
    print(soup) 

threads = [threading.Thread(target=testit) for i in range(1000)] # Not recommend to use 1000 here

for t in thread:
    t.start()

答案 1 :(得分:2)

使用线程。打开n个线程,同时ping服务器。您可以查看https://www.python-course.eu/threads.php

但是运行线程是一项CPU密集型任务,因此请确保控制n。给n更高的价值可能会给客户带来压力。