我不想使用任何测试工具..我正在写python脚本,它访问rest api到服务器...我想同时点击500/any_number_of登录/任何api到服务器,这样我就可以检查服务器的性能。
def login():
api = "http://0.0.0.0/api/method/login"
params = {"usr":"a@a.com","pwd":"password"}
reponse = requests.post(api,params=params)
def main():
for i in range(2):
for j in range(5):
t1 = Thread(target=login(), args=(j,))
t2 = Thread(target=get_profile(), args=(j,))
t1.start()
t2.start()
main()这段代码能工作吗?请建议我怎么做……
发布于 2016-03-03 15:22:33
使用像gevent或asyncio这样的couroutine模块。你可以有很多协程,但是你会受到线程数量的限制。这一限制既来自操作系统允许您的进程拥有的线程数量,也来自线程导致更大的性能影响的事实(每个线程需要自己的堆栈+上下文切换的成本)。
下面是使用gevent实现这一点的方法:
from gevent import monkey monkey.patch_all()
import urllib2
from gevent.pool import Pool
def download(url):
return urllib2.urlopen(url).read()
if __name__ == '__main__':
urls = ['http://your_url'] * 100
pool = Pool(20)
print pool.map(download, urls)https://stackoverflow.com/questions/35764920
复制相似问题