用python对百度进行并发量为100的狭义并发压测加注释
时间: 2024-04-06 20:12:56 浏览: 23
以下是对百度进行并发量为100的狭义并发压测的Python代码,以及注释解释每个步骤的含义。
```python
import requests
import time
import threading
# 定义测试的url
url = 'https://www.baidu.com/'
# 定义并发数为100
concurrent_num = 100
# 定义线程锁
lock = threading.Lock()
# 定义成功和失败的请求数
success_num = 0
fail_num = 0
# 定义测试函数
def test():
global success_num, fail_num
try:
# 发送请求
response = requests.get(url, timeout=10)
# 判断请求是否成功
if response.status_code == 200:
# 成功请求数加1
with lock:
success_num += 1
else:
# 失败请求数加1
with lock:
fail_num += 1
except:
# 失败请求数加1
with lock:
fail_num += 1
# 定义测试时间
start_time = time.time()
# 启动并发测试
threads = []
for i in range(concurrent_num):
t = threading.Thread(target=test)
t.start()
threads.append(t)
# 等待所有线程执行完毕
for t in threads:
t.join()
# 计算测试时间
end_time = time.time()
test_time = end_time - start_time
# 输出测试结果
print('测试时间:%.2f秒' % test_time)
print('成功请求数:%d' % success_num)
print('失败请求数:%d' % fail_num)
```
注释解释:
1. 导入requests、time和threading库。
2. 定义待测试的url。
3. 定义并发数为100。
4. 定义线程锁,用于保证成功和失败请求数的线程安全。
5. 定义成功和失败的请求数,初始值为0。
6. 定义测试函数,该函数发送请求并判断请求是否成功。如果请求成功,成功请求数加1;否则,失败请求数加1。
7. 定义测试时间的起始时间。
8. 使用for循环启动并发测试。在循环中,创建并启动测试线程,并将线程对象加入到threads列表中。
9. 使用for循环等待所有线程执行完毕。
10. 计算测试时间,即测试结束时间减去测试起始时间。
11. 输出测试结果,包括测试时间、成功请求数和失败请求数。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)