压力测试的并发请求可以只用一个账号吗

用压测工具登陆一个账户,对一个接口并发请求100个。和登陆100个账户对一个接口请求一次。哪个是正确的方式,不想去创建那么多账户

压力测试的话 登录一个账号 就可以了
发请求的目的是测试接口在高并发情况下的性能表现,如响应时间、吞吐量等。使用一个账户可以更真实反映在高并发下的性能

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7491647
  • 这篇博客你也可以参考下:测试开发岗面试,需要准备的100道题型
  • 除此之外, 这篇博客: 100%的单元测试覆盖率是不够的中的 译文内容 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 当开发人员进行的单元测试中100%覆盖我们的代码时,为什么需要测试人员?在创建测试时,测试人员为什么应审查单元测试?因为100%的单元测试代码覆盖率还不够。

    代码覆盖率工具跟踪代码的执行情况,并提供有关该执行情况的指标。最常见的措施之一是声明覆盖率。语句覆盖率给出了已执行语句占程序中语句总数的百分比。许多组织设定了单元测试覆盖率的目标,共同的目标是80%的语句覆盖率。

    开发人员为获得100%的单元测试覆盖率而感到自豪,项目团队的成员将其与拥有高质量的代码联系在一起。但是,即使测试执行了每一行代码,然后我们将代码称为“完全测试”,这也会产生误导。

    100%的单元测试覆盖率并不意味着我们已经进行了良好的测试,甚至并不意味着测试已经完成。测试可能会丢失重要数据,而只能使用成功的数据进行测试,而无法测试导致失败的数据。 100%的单元测试覆盖率没有说明缺少代码,缺少错误处理或缺少要求。

    测试也可能实际上没有检查代码的功能。仅执行代码而不检查其功能仍然在覆盖率指标中。

    以下示例说明了仅依靠单元测试覆盖范围会导致什么问题。代码是Python,测试是使用unittest模块编写的。希望这些示例能激发测试人员检查单元测试,改进这些测试或通过功能测试来补充它们,以填补空白—即使测试覆盖率为100%。

  • 您还可以看一下 王晨晨老师的决胜校招-硬件面试100题课程中的 决胜校招01-单片机没有运转怎么办?小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    问题:压力测试的并发请求是否可以只使用一个账户?

    回答:在进行压力测试时,使用一个账户并发请求100次和使用100个账户各自请求一次的方式都是可行的。具体使用哪种方式取决于被测试接口的要求和测试的目的。

    如果被测试接口对并发请求不做限制,并且要求测试请求的身份信息一致,那么可以使用一个账户并发请求100次。代码示例如下:

    import requests
    from concurrent.futures import ThreadPoolExecutor
    
    def send_request():
        url = "http://example.com/api"
        headers = {
            "Authorization": "Bearer token"  # 使用同一个身份信息
        }
        response = requests.get(url, headers=headers)
        print(response.status_code)
    
    def run_concurrent_requests():
        with ThreadPoolExecutor(max_workers=100) as executor:
            for _ in range(100):
                executor.submit(send_request)
    
    run_concurrent_requests()
    

    如果被测试接口对并发请求有限制,或者需要测试每个账户各自请求一次的情况下,就需要使用100个账户各自请求一次的方式。代码示例如下:

    import requests
    from concurrent.futures import ThreadPoolExecutor
    
    def send_request(username):
        url = "http://example.com/api"
        headers = {
            "Authorization": f"Bearer {username}"  # 每个账户使用不同的身份信息
        }
        response = requests.get(url, headers=headers)
        print(response.status_code)
    
    def run_concurrent_requests():
        usernames = ["user1", "user2", "user3", ...]  # 100个不同的账户
        with ThreadPoolExecutor(max_workers=100) as executor:
            for username in usernames:
                executor.submit(send_request, username)
    
    run_concurrent_requests()
    

    需要注意的是,使用多个账户进行并发请求时需要确保账户的有效性和授权状态,以免因身份信息错误或失效导致请求失败或测试结果不准确。