Chat / Responses API

Chat Completions

  • 围绕 messages 的请求---响应
    • 输入是一个 messages 数组,输出是一段文本。
plain 复制代码
response = client.chat.completions.create(
    model="deepseek-v4-flash",
    messages=[{ "role": "system", ... }, ...]
)

Responses

  • 面向输出项的统一接口
    • **多模态输入:**文本、图片、文件、检索结果可同时传入,统一 item 化。
    • **工具调用与事件:**function_call / reasoning / refusal 都是显式输出项。
plain 复制代码
response = client.responses.create(
    model="deepseek-v4-flash", input=[...])
for item in response.output:
    print(item.type, item)

4种消息

(这里是飞书电子表格,请在飞书中查看)

代码

python 复制代码
"""调用 DeepSeek,为 login 函数生成测试边界。"""

import os
from openai import OpenAI

api_key = os.getenv("DEEPSEEK_API_KEY")
if not api_key:
    raise RuntimeError("未找到 DEEPSEEK_API_KEY,请先设置环境变量。")

client = OpenAI(
    api_key=api_key,
    base_url="https://api.deepseek.com",
)

response = client.chat.completions.create(
    model="deepseek-flash",
    messages=[
        {
            "role": "system",
            "content": "你是专业的软件测试工程师。",
        },
        {
            "role": "user",
            "content": (
                "你好呀"
            ),
        },
    ],
)

print("\n\n=== 使用 chat.completions API ===\n\n")
print(response.choices[0].message.content or "模型没有返回内容。")

response2 = client.responses.create(
    model="deepseek-flash",
    input=[
        {
            "role": "system",
            "content": "你是专业的软件测试工程师。",
        },
        {
            "role": "user",
            "content": (
                "请为 login 函数生成测试边界,至少覆盖:"
                "正常登录、用户名为空、密码为空、密码错误、"
                "用户不存在、账号锁定和输入长度边界。"
                "请使用清晰的表格或列表回答。"
            ),
        },
    ],
)

print("\n\n=== 使用 responses API ===\n\n")

for item in response2.output:
    print(item.type,item)

响应结果

markdown 复制代码
=== 使用 chat.completions API ===


你好呀!👋

我是你的软件测试工程师伙伴。我可以帮你处理这些事儿:

- **测试设计**:根据需求文档/接口文档写测试用例(功能、边界、异常、兼容性等)
- **用例评审**:帮你检查现有用例的覆盖盲区、冗余和可执行性
- **缺陷管理**:分析缺陷、写清晰的复现步骤和缺陷报告、判断严重级别
- **接口测试**:设计接口测试场景,Postman/pytest 脚本编写
- **自动化测试**:UI/接口自动化框架选型与代码实现
- **性能测试**:JMeter/Locust 场景设计与指标分析
- **测试策略与流程**:测试计划、准入准出标准、质量度量

你现在手头有什么在做的项目或需求吗?把背景丢给我,我们直接开工 😄


=== 使用 responses API ===


reasoning ResponseReasoningItem(id='37ab12dd-7e0e-4811-a0c0-122209080066', summary=[], type='reasoning', content=[Content(text='我们需要回答中文。用户要求为 login 函数生成测试边界,至少覆盖:正常登录、用户名为空、密码为空、密码错误、用户不存在、账号锁定和输入长度边界。需要清晰表格或列表。需要专业测试工程师。需要生成测试边界。没有具体登录函数实现,需要假设输入参数 username, password。需要覆盖用例。应该包括测试边界,可能等价类/边界值。需要明确前置条件、输入、预期。至少覆盖列出的场景。输入长度边界需假设最大长度,比如用户名 1-50,密码 8-64?但未给定可说明按常见约束假设,若实际规格不同需调整。要专业。可以用表格:用例编号、场景、前置条件、用户名、密码、预期结果、备注。需要覆盖用户名空、密码空、密码错误、用户不存在、账号锁定、输入长度边界(用户名最小/最大/超长,密码最小/最大/超长,可能空)。正常登录。账号锁定可能尝试次数超限/管理员锁定。需要测试边界包括:用户名长度=1, max, max+1;密码长度=min, max, max+1;空;可能前后空格?可选。需要清晰。也要说明测试数据安全(错误密码需避免真实锁定生产,使用测试环境)。预期结果不要泄露用户是否存在?根据安全设计,用户不存在和密码错误统一提示"用户名或密码错误"。但账号锁定提示可单独。需要针对 login 函数返回状态。可以定义返回码:SUCCESS, INVALID_CREDENTIALS,ACCOUNT_LOCKED, VALIDATION_ERROR。需要包含锁定阈值边界:锁定前最后一次失败、达到锁定阈值、锁定期间正确密码也拒绝、锁定期满后成功?用户只要求账号锁定,可以包括。还有用户名空和密码空返回参数校验失败。输入长度边界可能返回格式错误/校验失败。为了完整性,列出必测用例表。需注意密码长度最小/最大,如果密码空已经覆盖。密码错误用有效用户名+错误密码。用户不存在用不存在用户名+任意密码。账号锁定用已锁定账号+正确密码。正常登录用有效未锁定账号+正确密码。长度边界:用户名最大长度+1、密码最大长度+1;用户名1字符、最大长度;密码最小长度、最大长度。需要假设规格。若没有规格,建议先确认约束:用户名必填、长度 3-32(或 1-50),密码必填、长度 8-64,允许字符集。为了避免瞎猜,可以写"以下以用户名 3-32、密码 8-64 为例;请按实际需求替换"。但用户要求生成测试边界,给表格。\n\n需要中文。可能包括边界值分析:对于用户名长度 3-32:2,3,32,33;密码长度 8-64:7,8,64,65。另外空。但至少覆盖输入长度边界。可以包含这些。测试用例多。需要清晰的表格。不要过长但覆盖。可分组:核心场景表、输入长度边界表、补充建议。表格列:编号、测试场景、前置条件、输入(用户名/密码)、预期结果。需要明确"正确密码"指测试账号已知。预期返回/提示。需要注意安全:无效用户名和密码错误统一提示;锁定账号返回锁定提示;空/超长返回参数校验错误。登录函数不应直接暴露"用户不存在"给前端,但测试内部可区分。测试用例中"用户不存在"预期"认证失败,统一提示"。但用户要求覆盖用户不存在,测试可以验证内部错误码 USER_NOT_FOUND 或统一提示。最好说明按产品安全策略,前端统一提示,日志/监控可区分。\n\n账号锁定:前置账号状态=锁定。预期拒绝,即使密码正确。可加"连续失败达到阈值后触发锁定"的边界:第 N-1 次失败仍认证失败,第 N 次失败后锁定,第 N+1 次正确密码返回锁定。这是边界。用户要求账号锁定,覆盖已锁定即可,补充锁定触发边界更专业。\n\n输入长度边界:注意空字符串是长度0,单独。用户名最大+1 预期校验失败,不查库。密码最大+1 预期校验失败。最小长度下限:如果用户名最小3,2 预期校验失败;3 成功(若账号存在)。密码7 校验失败,8 成功(若账号存在)。最大长度成功需构造有效账号/密码。密码最大长度成功也要账号密码匹配。可设计"边界内成功"和"边界外失败"。用户名含前后空格?登录通常 trim 或不 trim,需确认;可列为补充。大小写?补充。\n\n需要给出假设:测试环境隔离,避免锁定生产。用户名和密码均必填;用户名长度 3-32;密码长度 8-64;允许字符集 ASCII 可见字符;锁定阈值 5 次;锁定时长 15 分钟。如果实际规格不同,按规格调整。表格中"正确密码"和"错误密码"要明确。正常登录用 U_valid/P_valid。用户不存在用 U_not_exist/P_any。密码错误用 U_valid/P_wrong。空用户名:""/P_valid;空密码:U_valid/""。账号锁定:U_locked/P_valid。长度:U_len_3/U_len_32/U_len_2/U_len_33; P_len_8/P_len_64/P_len_7/P_len_65。预期:成功返回 token/session;空/长度越界返回参数校验错误;认证失败统一提示;锁定返回账号锁定。需要列出前置条件。\n\n可能用户希望"测试边界"而非完整用例。但表格即可。\n\n需要小心:密码最大长度 64 的成功用例需要账号的密码正好 64 字符且匹配。密码最小 8 成功用例账号密码 8 字符匹配。用户名最大 32 成功用例账号存在且密码正确。用户名最小 3 成功。用户名长度 2 和 33 失败。密码 7/65 失败。但用户名空和密码空已覆盖。密码长度 0 空。可以合并。用户名 32 成功与密码长度 8 成功可能不同账号。需要前置数据准备。表格中前置条件说明"已准备对应边界账号"。测试数据安全。\n\n预期结果可包括返回码。定义返回码表?可能直接写。为了清晰,先给约定:\n- 返回 SUCCESS\n- 返回 VALIDATION_ERROR(必填/长度)\n- 返回 INVALID_CREDENTIALS(统一提示"用户名或密码错误")\n- 返回 ACCOUNT_LOCKED\n如果系统不存在这些码,映射到实际。\n\n表格 1 核心场景:\nTC01 正常登录:未锁定有效用户+正确密码 -> SUCCESS,建立会话,无报错,审计成功。\nTC02 用户名为空:"" + 任意密码 -> VALIDATION_ERROR,不查库,统一参数错误。\nTC03 密码为空:有效用户名 + "" -> VALIDATION_ERROR,不查库。\nTC04 密码错误:有效未锁定用户 + 错误密码 -> INVALID_CREDENTIALS,统一提示,失败计数+1。\nTC05 用户不存在:不存在用户名 + 任意密码 -> INVALID_CREDENTIALS,统一提示,不暴露用户不存在,记录安全日志。\nTC06 账号锁定:已锁定用户 + 正确密码 -> ACCOUNT_LOCKED,拒绝登录,提示锁定/联系管理员,不建立会话。\nTC06b 锁定边界:连续失败 N-1 次 -> INVALID; 第 N次 -> 触发锁定;第 N+1 次正确密码 -> ACCOUNT_LOCKED。可加表或备注。\nTC07 锁定期间错误密码 -> ACCOUNT_LOCKED? 通常拒绝,避免进一步。可选。\nTC08 锁定期满后正确密码 -> SUCCESS(若策略自动解锁)。可选。用户没要求但补充。\n\n长度边界表:\n假设用户名长度 [3,32],密码 [8,64]。\nTC-L01 用户名长度=2(下限-1) + 有效密码 -> VALIDATION_ERROR。\nTC-L02 用户名长度=3(下限) + 有效密码 -> SUCCESS(账号需存在)。\nTC-L03 用户名长度=32(上限) + 有效密码 -> SUCCESS。\nTC-L04 用户名长度=33(上限+1) + 有效密码 -> VALIDATION_ERROR。\nTC-L05 密码长度=7(下限-1) + 有效用户名 -> VALIDATION_ERROR(注意如果密码错误也校验长度优先)。\nTC-L06 密码长度=8(下限) +匹配密码 -> SUCCESS。\nTC-L07 密码长度=64(上限) + 匹配密码 -> SUCCESS。\nTC-L08 密码长度=65(上限+1) + 任意密码 -> VALIDATION_ERROR。\nTC-L09 用户名空/密码空已核心。\nTC-L10 用户名=1(如果最小1? 假设3不适用)我们不需要。但如果用户名规格是1-50,要按实际。可以表格假设并注明。也可以给通用边界模板而非具体。用户要求生成,最好具体。可写"示例规格"。 \n如果实际用户名最小1,那么空和1都是边界。为了满足"输入长度边界",可以覆盖1、最大值、最大+1。但需要假设。我可以设用户名长度 1-50,密码 8-64 更常见?很多系统用户名 3-32。用户未指定。需要明确"若实际规格不同,按实际替换"。包括用户名长度=1 和 50/51。这样覆盖最小1。密码最小8最大64。使用用户名 1-50 更通用,因为空是0,最小1。用户要求用户名为空,所以长度0。那么长度边界包含1和50/51。密码空0,最小8。很好。假设用户名允许 1-50,密码 8-64。用户名长度=1 成功,=50成功,=51失败。密码=8成功,=64成功,=7失败,=65失败。还要用户名长度=0空核心。密码长度=0空核心。这样覆盖所有边界。好。\n\n需要可能测试"用户名最大长度+1"时,若账号不存在也返回校验错误优先。确保长度校验先于认证。安全:避免超长输入DoS。预期不查库或截断?应拒绝。\n\n测试数据准备:\n- U_valid 长度1? 正常登录可用普通账号。\n- U_len_1 1字符账号存在且密码正确。\n- U_len_50 50字符账号存在。\n- U_len_51 不存在/任意。\n- P_len_8 匹配的8字符密码。\n- P_len_64 匹配的64字符密码。\n- P_len_7/65 任意。\n密码错误用例不能使用真实用户导致锁定生产;使用测试环境,或失败计数可重置。\n\n输出格式:\n先简短说明假设和返回码约定,然后表格。表格列可以多,但中文清晰。最后补充建议:测试环境、不泄露用户存在性、锁定计数、幂等/审计、空白字符、Unicode/大小写、SQL注入等不在必需范围但建议。不要过度。Desired oververbosity 5。需要满足。最终不要问问题。要直接给。可以分"核心场景边界表"和"输入长度边界表"。表中要包含"账号锁定边界"补充。需要覆盖"用户不存在"和"密码错误"预期统一提示。如果需要区分内部返回码可以括号。\n\n需要思考是否"密码为空"与"密码长度=0"重复。可以注明密码为空在核心,长度边界不再重复。输入长度边界包括用户名 1,50,51,密码7,8,64,65。密码最大+1。用户名最大+1。如果用户名长度=1 成功,需要密码有效。密码长度=8 成功,需要密码匹配。密码长度=64 成功,需要账号密码64。密码长度=7/65 预期校验失败(如果密码校验先于认证)。但若密码错误且长度越界,预期 VALIDATION_ERROR。要确保被测函数有长度校验。若没有,测试会发现缺陷。很好。\n\n账号锁定边界:可用 TC06a/b/c。表格中核心只列已锁定。补充表"账号锁定状态边界":\n- 未锁定,失败次数=N-1,正确密码 -> SUCCESS(若成功重置计数)?或仍可成功。 \n- 失败次数=N-1,错误密码 -> INVALID,计数变N并锁定。\n- 失败次数=N,正确密码 -> ACCOUNT_LOCKED。\n- 锁定期内正确密码 -> ACCOUNT_LOCKED。\n- 锁定期满后正确密码 -> SUCCESS(若自动解锁)。\n需要避免复杂。用户至少覆盖账号锁定,核心 TC06 已。补充可加"锁定触发边界"以专业。表格不必太长。可以列 3 行。\n\n需要明确"正确密码"和"错误密码"符号。在表格中输入列使用变量,前面定义。例如:\nU_valid: 已注册未锁定;P_valid: 对应正确密码\nU_nonexist: 不存在;P_wrong: 错误密码\nU_locked: 已锁定;P_any: 任意非空密码\nP_len_8 等。\n\n表格列:\n| 编号 | 测试场景 | 前置条件 | 用户名 | 密码 | 预期结果 |\n表格可能较宽。可以。预期结果包括返回码和提示。使用<br>换行?Markdown 表格中可。保持简洁。\n\n核心场景表:\nTC01 正常登录 未锁定账号 U_valid P_valid SUCCESS,返回会话/token,登录成功审计;不提示异常。\nTC02 用户名为空 任意账号 "" P_valid VALIDATION_ERROR,提示用户名不能为空;不查询用户/不计数。\nTC03 密码为空 U_valid "" VALIDATION_ERROR,提示密码不能为空;不计数。\nTC04 密码错误 U_valid P_wrong INVALID_CREDENTIALS,统一提示;失败计数+1。\nTC05 用户不存在 U_nonexistP_any INVALID_CREDENTIALS,统一提示;日志可记录,不暴露。\nTC06 账号锁定 U_locked P_valid ACCOUNT_LOCKED,拒绝,提示锁定;不建立会话。\nTC07 锁定+错误密码 U_locked P_wrong ACCOUNT_LOCKED 或 INVALID? 通常锁定优先,返回锁定,不增加失败计数?可补充。不是必须。\nTC08 锁定期满 U_locked_expired P_valid SUCCESS(若自动解锁)。补充。\n\n输入长度边界表(假设用户名1-50,密码8-64):\nL01 用户名长度=1(下限) U_len_1 P_valid SUCCESS\nL02 用户名长度=50(上限) U_len_50 P_valid SUCCESS\nL03 用户名长度=51(上限+1) U_len_51 P_any VALIDATION_ERROR,提示长度超限;拒绝,不查库/不计数\nL04 密码长度=7(下限-1) U_valid P_len_7 VALIDATION_ERROR,提示密码长度不合法\nL05 密码长度=8(下限) U_pwd8 P_len_8 SUCCESS\nL06 密码长度=64(上限) U_pwd64 P_len_64 SUCCESS\nL07 密码长度=65(上限+1) U_valid P_len_65 VALIDATION_ERROR\nL08 密码长度=0 已在TC03;用户名为0在TC02。备注。\n还有用户名长度=0 已覆盖,密码长度=0 已覆盖。很好。需要注意密码长度=7 可能不符合密码策略但登录函数长度校验。预期参数错误而不是认证失败。如果产品策略允许密码小于8(老账号),则需按实际。假设注册策略。但登录函数不应该校验密码复杂度?登录时只校验非空和最大长度,不应拒绝短密码,因为可能存在旧账号或密码策略变更。这是一个细节!登录函数通常不应对密码做最小长度校验(避免泄露策略/兼容旧密码),只校验非空和最大长度。但用户要求输入长度边界,可以定义密码输入允许长度范围。很多登录函数对密码长度最大限制,不限制最小(空除外)。如果密码最小长度8,登录时输入7会返回"密码错误"而不是"格式错误",取决于实现。测试预期应依据规格。需要避免错误假设。更专业:输入长度边界需按接口规格;若未定义最小密码长度,密码长度边界主要测最大长度和空。但用户要求密码长度边界。可以设计"按注册密码策略 8-64"的预期,但标注"若登录接口不对密码最小长度做校验,则短密码应走认证失败而非参数错误;以接口规格为准"。这显示专业性。也许表格中用"按规格:密码长度 8-64;若登录不校验最小长度,则 L04 预期改为 INVALID_CREDENTIALS"。这样很好。但要保持回答清晰,不要矛盾。\n\n同样用户名最小1。密码最小8可能是注册策略,不一定登录。但用户要求输入长度边界,我们可把最小长度作为输入约束。需要明确假设。好。\n\n账户锁定:锁定阈值和锁定时长也是假设。可以设 N=5。表格中 N。如果实际不同替换。\n\n安全建议:用户不存在和密码错误使用相同外部提示和相近响应时间,避免枚举。账号锁定提示可能暴露账号存在,需产品接受。空/超长输入在参数校验层拒绝,防止 DoS。\n\n最终回答结构:\n1. 说明假设(测试环境;用户名长度1-50,密码长度8-64;锁定阈值5;返回码;如规格不同替换)\n2. 核心场景表\n3. 输入长度边界表\n4. 账号锁定边界补充表(可选)\n5. 执行注意事项(3-5 条)\n\n需要控制长度。表格较多但符合。最终用中文。需要"至少覆盖"所有。要清晰。可以合并锁定边界到核心表?分开更清晰。\n\n让我们写最终。确保表格列不超宽。用变量定义在表前。表中"预期结果"详细。需要提及"密码错误"失败计数仅对有效用户名? 安全上用户不存在也计数? 可简化。\n\n输入长度表:用户名长度=1 成功需要账号存在且密码正确;长度=50 成功。密码长度=8/64 成功。密码长度=7/65 参数错误。密码长度=0 核心。用户名长度=0 核心。用户名长度=51 失败。用户名长度=2? 假设最小1,不测2。边界值法最小1,最大50,最大+1。空0已覆盖。OK。但是用户名最大长度成功用例中,用户名 50 字符,密码正确。好。\n\n密码长度=7 如果登录不校验最小。标注。密码长度=65 一定拒绝。密码长度=8/64 成功。密码空0核心。\n\n账号锁定边界表:\n- N-1次失败后仍可正常登录? 如果成功可能重置。预期 SUCCESS,重置失败计数。\n- 第 N 次失败触发锁定:N-1 次失败后,再错误密码 -> INVALID_CREDENTIALS,同时账号状态变 LOCKED;下一次正确密码 -> ACCOUNT_LOCKED。可以拆两行。\n- 锁定期内正确密码 -> ACCOUNT_LOCKED。\n- 锁定期满后正确密码 -> SUCCESS(若自动解锁)。 \n需要前置条件明确。表中"输入"列。好。\n\n需要注明"用户不存在"预期外部统一提示;内部日志区分。账号锁定可能提示"账号已锁定,请稍后/联系管理员"。安全与可用性权衡。 \n\n现在写最终答案。需要中文。避免提及"不能"之类的。使用"建议"。可以"注:以下以常见规格为例"。好。\n\n最终长度适中。', type='reasoning_text')], encrypted_content='4635872c-c4aa-431f-a093-8b4defc1ec70-0', status='completed')
message ResponseOutputMessage(id='731b2417-6281-4f39-9b2e-a6aea9533652', content=[ResponseOutputText(annotations=[], text='以下测试设计以常见规格为例:用户名必填、长度 1--50;密码必填、长度 8--64;锁定阈值 \\(N=5\\);测试在隔离环境执行,避免误锁生产账号。若实际接口规格不同,请替换对应边界值。预期返回码可映射为实际系统码:`SUCCESS`、`VALIDATION_ERROR`、`INVALID_CREDENTIALS`、`ACCOUNT_LOCKED`。\n\n### 1. 核心场景测试边界\n\n| 编号 | 测试场景 | 前置条件 | 输入:用户名 / 密码 | 预期结果 |\n|---|---|---|---|---|\n| TC01 | 正常登录 | 用户存在、未锁定、密码正确 | `U_valid` / `P_valid` | 返回 `SUCCESS`;建立会话或返回 token;记录成功审计日志 |\n| TC02 | 用户名为空 | 任意账号/环境 | `""` / `P_valid` | 返回 `VALIDATION_ERROR`;提示用户名不能为空;不进入认证查询、不增加失败计数 |\n| TC03 | 密码为空 | 用户存在、未锁定 | `U_valid` / `""` | 返回 `VALIDATION_ERROR`;提示密码不能为空;不增加失败计数 |\n| TC04 | 密码错误 | 用户存在、未锁定 | `U_valid` / `P_wrong` | 返回 `INVALID_CREDENTIALS`;统一提示"用户名或密码错误";失败计数 +1 |\n| TC05 | 用户不存在 | 用户名不存在 | `U_nonexist` / `P_any` | 返回 `INVALID_CREDENTIALS`;外部提示与密码错误一致,避免暴露用户是否存在;内部日志可区分 |\n| TC06 | 账号锁定 |用户已锁定 | `U_locked` / `P_valid` | 返回 `ACCOUNT_LOCKED`;拒绝登录;不建立会话;提示账号已锁定或联系管理员 |\n| TC07 | 锁定期间密码错误 | 用户已锁定 | `U_locked` / `P_wrong` | 返回 `ACCOUNT_LOCKED`;锁定状态优先,不继续校验密码,不额外增加失败计数 |\n| TC08 | 锁定期满后登录 | 账号原锁定、已到解锁时间 | `U_locked_expired` / `P_valid` | 若策略为自动解锁,返回 `SUCCESS` 并重置失败计数;若需管理员解锁,则返回 `ACCOUNT_LOCKED` |\n\n### 2. 输入长度边界测试\n\n| 编号 | 边界场景 | 输入:用户名 / 密码 | 预期结果 |\n|---|---|---|---|\n| TC-L01 | 用户名长度 =1,下限 | `U_len_1` / `P_valid` | 返回 `SUCCESS`;账号需预先存在且密码正确 |\n| TC-L02 | 用户名长度 = 50,上限 | `U_len_50` / `P_valid` | 返回 `SUCCESS`;账号需预先存在且密码正确 |\n| TC-L03 | 用户名长度 = 51,上限 +1 | `U_len_51` / `P_any` | 返回 `VALIDATION_ERROR`;提示用户名长度超限;拒绝查询和认证 |\n| TC-L04 | 密码长度 = 7,下限 -1 | `U_valid` / `P_len_7` | 按规格预期 `VALIDATION_ERROR`;若登录接口不校验密码最小长度,则预期改为 `INVALID_CREDENTIALS` |\n|TC-L05 | 密码长度 = 8,下限 | `U_pwd8` / `P_len_8` | 返回 `SUCCESS`;账号需预先存在且密码匹配 |\n| TC-L06 | 密码长度 = 64,上限 | `U_pwd64` / `P_len_64` | 返回 `SUCCESS`;账号需预先存在且密码匹配 |\n| TC-L07 | 密码长度 = 65,上限 +1 | `U_valid` / `P_len_65` | 返回 `VALIDATION_ERROR`;提示密码长度超限;拒绝认证 |\n| TC-L08 | 用户名长度 = 0、密码长度 = 0 | 见 TC02、TC03| 已由空用户名、空密码用例覆盖 |\n\n### 3. 账号锁定边界补充\n\n| 编号 | 测试场景 | 前置条件 | 输入 | 预期结果 |\n|---|---|---|---|---|\n| TC-LK01 | 第 \\(N-1\\) 次失败后登录 | 已连续失败 4 次,账号未锁定 | 正确用户名 / 正确密码 | 返回 `SUCCESS`;失败计数按策略重置 |\n| TC-LK02 | 第 \\(N\\) 次失败触发锁定 | 已连续失败 4 次,第 5 次输入错误密码 | 正确用户名 / 错误密码 |返回 `INVALID_CREDENTIALS`;账号状态变为锁定 |\n| TC-LK03 | 达到锁定阈值后使用正确密码 | 已连续失败 5 次,账号已锁定 | 正确用户名 / 正确密码 | 返回 `ACCOUNT_LOCKED`;即使密码正确也拒绝登录 |\n| TC-LK04 | 锁定期内重复尝试 | 账号锁定未到期 | 正确用户名 / 任意密码 | 返回 `ACCOUNT_LOCKED`;不建立会话,不泄露更多账号信息 |\n\n执行注意:用户不存在与密码错误应使用相同外部提示和相近响应时间;空值和超长输入应在参数校验层尽早拒绝;锁定相关用例应在可重置失败计数和解锁状态的测试环境执行。', type='output_text', logprobs=[])], role='assistant', status='completed', type='message', phase='final_answer')
plain 复制代码
ResponseReasoningItem
├── id
├── summary
├── type = reasoning
├── content
│   └── Content
│       ├── text
│       └── type = reasoning_text
├── encrypted_content
└── status = completed

ResponseOutputMessage
├── id
├── content
│   └── ResponseOutputText
│       ├── annotations
│       ├── text
│       └── type = output_text
├── role = assistant
├── status = completed
├── type = message
└── phase = final_answer
相关推荐
我命由我1234521 天前
SQL 检测脚本
java·数据库·sql·功能测试·单元测试·压力测试·可用性测试
CesareCheung24 天前
高级软件测试工程师面试锦集
面试·单元测试·压力测试
我科绝伦(Huanhuan Zhou)24 天前
Linux 通用压力测试脚本合集:磁盘 + 网络
linux·网络·压力测试
星星码️1 个月前
博客系统 Web 端测试报告:功能、自动化与性能
功能测试·测试工具·压力测试·模块测试·测试覆盖率
哭哭啼1 个月前
Linux 资源紧缺模拟:CPU、内存、磁盘与文件描述符压力测试
linux·运维·压力测试
梦帮科技1 个月前
可证伪性工程测评与生产部署红蓝对抗:压力测试、长尾鲁棒性与全生命周期安全质检守卫
人工智能·深度学习·神经网络·安全·机器学习·自然语言处理·压力测试
微软技术分享1 个月前
BinSentry 自研二进制哨兵压力测试+冒烟回归脚本
压力测试
AngusKit2 个月前
AngusTester 与 Postman、MeterSphere:私有化统一测试怎么选
测试工具·jmeter·压力测试·metersphere·web测试·移动端测试