压力测试,测试登录脚本

下面是一个使用Python编写的压力测试脚本示例,用于测试登录功能:

import requests
from concurrent.futures import ThreadPoolExecutor
import time

# 定义登录函数
def login(username, password):
    url = 'http://example.com/login'  # 替换为实际的登录接口地址
    data = {
        'username': username,
        'password': password
    }
    response = requests.post(url, data=data)
    return response.status_code

# 压力测试函数
def stress_test(username, password, num_requests, concurrency_level):
    start_time = time.time()
    success_count = 0
    failure_count = 0

    with ThreadPoolExecutor(max_workers=concurrency_level) as executor:
        futures = [executor.submit(login, username, password) for _ in range(num_requests)]
        for future in futures:
            result = future.result()
            if result == 200:
                success_count += 1
            else:
                failure_count += 1

    end_time = time.time()
    total_time = end_time - start_time

    print(f'Total requests: {num_requests}')
    print(f'Successful requests: {success_count}')
    print(f'Failed requests: {failure_count}')
    print(f'Total time taken: {total_time} seconds')

# 执行压力测试
username = 'testuser'
password = 'password'
num_requests = 100  # 总请求数量
concurrency_level = 10  # 并发级别

stress_test(username, password, num_requests, concurrency_level)

这个脚本使用了concurrent.futures.ThreadPoolExecutor来实现并发执行登录请求,max_workers参数指定了并发级别。你可以根据需要修改总请求数量和并发级别。同时,需要将'http://example.com/login'替换为实际的登录接口地址。

请注意,压力测试需要谨慎使用,确保对目标系统的测试活动是可控的,以避免对系统稳定性和可用性造成负面影响。