华为云用户手册

  • 背景信息 关键字驱动测试是一种测试自动化的技术,通过提供一组称为关键字的“构建块”创建自动化测试用例。关键字驱动测试可用于组件测试、系统测试等不同的测试级别,其优势体现在易用性、可理解性、可维护性、测试信息的重用、支持测试自动化、节约潜在的成本和进度等方面。 在设计测试用例时,经常会遇到有一些相同的前置步骤或者测试逻辑。如果每一个测试用例中都编写这些步骤,重复工作量很大,并且难以维护。测试关键字可以帮助复用这些测试步骤。 关键字库将接口关键字、组合关键字、系统关键字、自定义关键字进行统一管理,打造一站式关键字管理能力,在用例脚本设计时用户体验保持一致。 接口关键字中定义单个接口的请求,可以通过导入Swagger文件、保存自定义URL请求等方式生成。 接口关键字请参见将测试步骤保存为CodeArts TestPlan接口脚本关键字。 组合关键字用于将多个步骤封装常用测试逻辑,可以被测试用例调用实现逻辑复用。组合关键字请参见将测试步骤保存为CodeArts TestPlan组合脚本关键字。 系统关键字涵盖认证、协议、中间件、数据库四大类别,覆盖身份认证、复杂协议、数据处理、数据预置、数据验证、接口集成等丰富场景。系统关键字请参见接口自动化用例系统关键字说明。 自定义关键字具备高度的扩展性,用户可以在本地编写代码完成自定义关键字的开发,满足高阶用户的复杂场景测试诉求。
  • 示例 请求url路径 如下图所示,请求url路径中参数“test”的值为字符串切割运算函数,函数中的参数A为环境参数“$${user}”, 参数B为整数2,参数C为整数4。 请求头 如下图所示,请求头中参数“name”的值为字符串切割运算函数,函数中的参数A为环境参数“$${user}”, 参数B为整数2,参数C为整数4。 请求体 如下图所示,请求体中应用了字符串切割运算函数,函数中的参数A为环境参数“$${user}”, 参数B为整数2,参数C为整数4。 检查点属性 如下图所示,检查点属性“result”的目标值为字符串切割运算函数,函数中的参数A为环境参数“$${info}”, 参数B为整数2,参数C为整数5。 if判断 如下图所示,if判断的目标值为字符串切割运算函数,函数中的参数A为“abcdef”, 参数B为整数2,参数C为整数4。 for循环中断条件 如下图所示,for循环中断条件的目标值为字符串切割运算函数,函数中的参数A为环境参数“$${test}”, 参数B为整数2,参数C为整数4。
  • 实例 请求url路径 如下图所示,请求url路径中参数“test”的值为大写转小写运算函数,函数中的参数A为“TEST”。 请求头 如下图所示,请求头中参数“lower”的值为大写转小写运算函数,函数中的参数A为“Test”。 请求体 如下图所示,请求体中应用了大写转小写运算函数,函数中的参数A为“Test”。 检查点属性 如下图所示,检查点属性“result”的目标值为大写转小写运算函数,函数中的参数A为“Test”。 if判断 如下图所示,if判断的目标值为大写转小写运算函数,函数中的参数A为“AAAAA”。 for循环中断条件 如下图所示,for循环中断条件的目标值为大写转小写运算函数,函数中的参数A为“OK”。
  • 示例 请求url路径 如下图所示,请求url路径中参数“test”的值为生成SHA256编码函数,函数中的参数A为字符串“abc123”。 请求头 如下图所示,请求头中参数“Accept-Encoding”的值为生成SHA256编码函数,函数中的参数A为字符串“abc123”。 请求体 如下图所示,请求体中应用了生成SHA256编码函数,函数中的参数A为生成UUID函数“$uuid()”。 检查点属性 如下图所示,检查点属性“result”的目标值为生成SHA256编码函数,函数中的参数A为局部参数“test”。局部参数的设置方式请参考局部参数。 if判断 如下图所示,if判断的目标值为生成SHA256编码函数,函数中的参数A为环境变量“status”。环境参数的设置方式请参考设置CodeArts TestPlan接口脚本的环境参数。 for循环中断条件 如下图所示,for循环中断条件的目标值为生成SHA256编码函数,函数中的参数A为字符串“abc123”。
  • OpenGaussQuery响应示例 [ { "name": "张三", "id": "efdb403066474ab08836b9eeaaa23bca", "age": 18 }, { "name": "李四", "id": "g582b0d966611486f918bedb9c711b14", "age": 20 } ]
  • 测试执行流程与实践 华为云CodeArts TestPlan的测试执行功能,提供手工及多种自动化执行方式来按照测试执行策略的指导实现产品的测试,在产品发布前发现尽可能多的缺陷,回答产品质量如何的终极问题。 表1 本流程阶段活动描述 关键活动 活动描述 活动输入 活动输出 测试执行 测试工程师进行测试执行,发现并通过缺陷跟踪功能报告缺陷。 测试策略 测试方案 测试用例 测试发现的缺陷 可靠性试验 旨在验证产品可靠性规格指标是否达到规定的要求,暴露设计、工艺、材料等方面的缺陷,寻找产品的薄弱环节并明确改进措施的可靠性试验。 可靠性试验方案、用例 可靠性试验报告 缺陷分析 测试经理组织测试工程师对所发现缺陷进行分析,评估产品质量状况,分析结果将作为测试报告的输入。 缺陷 缺陷分析报告 父主题: IPD测试流程与实践
  • 用例命名规则 规则2.1 用例名称为必填项,要简洁、短小,不能包含模糊语句。不要超过40个字符。 规则2.2 用例名称需简要说明用例意图,提炼关键前置条件、步骤和观察点。 规则2.3 用例名称在特性范围内唯一,不允许出现重复、包含、叠加的关系,或者仅有数字编号差异。 规则2.4 用例名称避免使用特殊字符,可以用“_”对名称进行分割。 建议2.1 用例名称建议采用动宾结构。例如:“用例意图_预制条件_观察点”,也可以通过“_”追加条件或原因。 【正例/反例】测试用例名称描述示例 正例 反例 点评描述 新建信息_新建按钮_单次单击。 通过左上角New Message新建。 由于用户界面上的按键位置不固定,不应使用受约束的描述,如反例中的“左上角”。 建议使用有客观意义、严谨的描述,如“新建按钮”。 查询流量策略_非法参数_特殊字符。 使用包含特殊字符构造的非法参数来查询流量策略。 正例简洁、提炼关键预置条件,名称使用动宾结构且使用_进行分割,用例意图一目了然。 反例中用例名称不够简洁,未对关键预置条件进行提炼分割。 查询流量策略_非法参数_特殊字符。 查询流量策略_非法参数_特殊字符@ 查询流量策略_非法参数_特殊字符# 反例中用例名称含有特殊字符,且仅有特殊字符有差异,不符合等价类划分原则。 父主题: 测试用例编写规范
  • 简洁单一:测试用例表达要求简洁,测试逻辑单一 规则7.2.1 一个测试用例应覆盖单一测试逻辑。 规则7.2.2 用例的执行步骤建议在7步以内,超过7步的考虑拆分为多个用例。 规则7.2.3 对于产品技术、测试技术的基本知识和常识,不要在用例中描述。 规则7.2.4 每个执行步骤建议描述单一的操作,应避免把多个复杂的操作放在同一步骤中。 规则7.2.5 测试用例中不要写无关冗余的内容 。 用例表达并不是描述越详细越好,描述复杂的用例可读性差,并且易造成理解上和操作上的困惑。 用例表达的简结包括以下几个方面的要求: 用例的执行步骤建议在7步以内,超过7步的考虑拆分为多个用例; 测试执行的每一步描述中,如果有引用测试执行指导书中内容的,通过标记说明; 对于产品技术、测试技术的基本知识和常识,不要在用例中描述;但对于较难理解和掌握的消息,建议在测试指导书中进行说明,不需在每个用例进行说明。 举例: 以下是一个完整,表达简洁的测试步骤: 登录测试系统、切换至“资产”。 选择资产树APP。 单击“Config”按钮,切换至“PDU”页面。 分别设置每页大小为10/30/50并单击左右分页按钮切换页面。 填写跳转页面树,单击跳转页面按钮。 父主题: 用例前置条件、测试步骤、预期结果文字表达规则
  • 示例 获取授权码 参数填写方式如下图所示: 响应示例如下图所示: password字段属于敏感参数,需要在变量里面配置且设置为敏感参数,在下拉框中选用。 当clientSecret填写为空时,仅返回授权码(code)。 获取授权码、AccessToken以及用户信息 参数填写方式如下图所示: password与clientSecret字段属于敏感参数,需要在变量里面配置且设置为敏感参数,在下拉框中选用。 当填写clientSecret时,返回授权码(code)、 AccessToken(access_token_info)及用户信息(user_info)。
  • 精准:测试用例表达用词要求精准 规则7.1.1 测试步骤、预期结果为必填项。 规则7.1.2 前置条件需详细、简洁地说明执行测试前的准备事项,如被测对象所处状态、预置数据、预置条件等,不使用无用、抽象的条件。 规则7.1.3 测试步骤中对必须的测试操作对象、操作方法需实例化表达清楚,非用例作者通过浏览也可以进行测试操作。 规则7.1.4 步骤中有需要设置参数的要显示说明,不能只有“边界值”、“错误值”、“非法值”、“遍历所有字符”等简单描述。 规则7.1.5 用例表述中不要使用模糊的、含二义性的语句,避免使用概数,如“很多”、“一些”、“部分”等。 规则7.1.6 不要遗漏任何测试动作。 模糊词列表 很多、一些、部分、大量、少量、多次、设备无异常、随机、任意、一段时间、一会、一点、特殊、很长、较长、很短、较短、多个、几块、多条、数次、变差、所有、大概、频繁、大约、某些、计数正常、长时间、多端口、异常、错误信息、死循环、正常、最大、最小、非法报文、非法字符、超长、超小、超短、长包、短包、边界值、过低、过高、全部、缺省、默认、各模块、可能、有的、一定范围、适量、多于、少于、左右、上下 【正例/反例】 字段 正例 反例 点评说明 前置条件 通信录中已经添加联系人。 无前置条件。 若后续测试步骤有依赖数据时,需要添加前置条件。如:测试短信编写功能,通信录没有保存联系人,则短信编辑界面不显示联系人列表。反例中未描述必要前置条件。 前置条件 1、XXX SDK正确安装 2、python安装版本为python34以上 3、adb版本为1.3.6以上 XXX SDK、python及adb已正常安装。 反例中前置条件描述过于抽象,未明确标明依赖软件python及adb的版本要求,可能导致不兼容的情况发生。 测试步骤 使用XX工具,强行中断A模块的进程。 创造条件,使得A模块异常。 反例中未描述如何使A模块异常,不具备指导性。 测试步骤 拔掉A模块所在机器的网线。 创造条件,使得A模块异常。 反例中未描述如何使A模块异常,不具备指导性。 测试步骤 1.进入信息主界面 2.单击新建信息按钮 在New Message界面,通过左上角选择New message新建短信 把操作步骤分割清楚,并且使用严谨的词。 预期结果 检查XXX消息中参数YYY的取值为ZZZ。 检查消息流程正确。 反例中未明确消息流程如何判断是否正确。 预期结果 检查XXX消息跟踪,跟踪消息全面,对以下关键字段:消息类型、长文件名的解析正确。 检查消息跟踪、解析正确。 反例中未明确如何跟踪消息是否全面。 父主题: 用例前置条件、测试步骤、预期结果文字表达规则
  • CodeArts TestPlan接口自动化用例使用流程 接口自动化用例提供了丰富的用户界面,支持可视化地编排自动化测试步骤以及丰富的检查点和相应提取配置,可以在简单易用的可视化接口管理页面上,快速生成与接口核心逻辑相匹配的测试用例,实现“零代码”快速生成测试用例。接口自动化用例具备多测试步骤的逻辑编排能力,支持通过拖拽来安排接口测试的顺序,生成自动化测试策略,完成场景级接口自动化脚本生成,测试人员可以从重复工作中释放出来,进行探索性测试等更具有创造性和高价值的测试活动。 接口自动化用例包含用例基本信息和脚本两部分: 基本信息用于管理和描述测试用例,包含名称(必填)、类型、模块、版本号、迭代、关联需求、编号、标签、用例等级、处理者、归属目录、描述、前置条件、测试步骤、预期结果。 脚本用于定义自动化测试步骤,包含测试步骤、逻辑控制、测试参数。 接口自动化用例的使用流程包括三个阶段:准备阶段、测试阶段、销毁阶段。 准备阶段对应页面中的“前置步骤”,实现测试前置条件的准备;测试阶段对应“测试步骤”,实现接口的功能测试;销毁阶段对应“后置步骤”,实现准备阶段和测试阶段测试数据的释放或恢复。 准备阶段(可选):前置步骤。 在此阶段中准备测试阶段需要的前置条件的数据,如果没有前置条件,可以忽略此阶段。 在准备阶段通过调用接口的方式初始化前置条件,如果前置条件的数据需要在测试阶段中引用,可以使用参数传递将数据参数化后供测试阶段引用,详见设置CodeArts TestPlan接口脚本的响应提取。 测试阶段:测试步骤。 定义接口核心测试步骤,测试阶段中的测试步骤可以引用准备阶段提取的参数。 销毁阶段(可选):后置步骤。 为了不影响其它测试或者下一次测试,建议在每次测试结束后清理测试环境数据,恢复测试环境的初始状态,销毁准备阶段创建的数据。 如果没有数据需要销毁,可以忽略此阶段。通过调用接口的方式销毁数据,销毁阶段的测试步骤可以引用准备阶段提取的参数。 父主题: 创建接口自动化测试用例
  • MQTTConnect简介 该系统关键字支持对MQTT协议的全流程测试,用以连接MQTT服务器,如果需要使用该系统关键字,需要用户将MQTT服务器开放公网访问并且将对应端口的安全组策略开启放行。 参数 是否必选 参数类型 默认值 描述 MQTT服务器协议 是 String - 枚举值(tcp://和ssl://),缺省为tcp://。当前支持TCP(tcp://)和SSL(ssl://)两种协议,其余协议待扩充。 MQTT服务器IP 是 String - MQTT服务器地址,支持写固定IP或 域名 。 MQTT服务器端口 是 Integer - MQTT服务器端口,用来访问MQTT服务。 MQTT版本 是 String 3.1.1 MQTT版本:目前支持3.1.1和3.1。 用户名 是 String - MQTT服务器用户名。 密码 是 String - MQTT服务器密码。 连接保活时长 是 String 300 MQTT协议组件与服务器在该时间段内会发送心跳。超过该连接保活时长后,客户端不再发送PINGREQ报文,不影响后续发布消息、订阅消息和关闭连接流程。 客户端ID 是 String apitest_ MQTT客户端ID,用来区分客户端,一般为UUID。 添加随机后缀 是 Boolean true 支持添加随机后缀,当clientID为空时,默认打开,用户指定后缀,请关闭随机后缀。 清空会话 是 Boolean false 每次消息接收之后是否清空会话。
  • MQTTConnect响应示例 { "mqtt_response" : { "status" : "success", "message" : "", "data" : { "request_begin" : 1656937043362, "response_time" : 73, "sent_bytes" : 18, "recv_bytes" : 4, "return_code" : 0 } }, "user_id" : "1"}
  • MQTT协议简介 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(Publish/Subscribe)模式的轻量级通讯协议,MQTT 最大的优点在于以极少的代码和有限的带宽,为远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议, MQTT 在物联网、小型设备、移动应用等方面有广泛的应用。 接口测试对于MQTT协议提供全流程测试,系统关键字包括:MQTTConnect,MQTTDisconnect,MQTTPublish,MQ TTS ubscribe。 由于MQTT协议测试需要采用双容器方案,安全风险较高,目前只对白名单用户开放,如果需要使用MQTT相关测试请联系客服。
  • MQTTConnect响应 参数 参数类型 描述 mqtt_response JSON MQTT服务端返回值。 status String MQTT服务端响应状态。 message String MQTT服务端返回信息。 data JSON APITest定义的接口返回。 request_begin Long 访问MQTT服务器的开始时间。 response_time Long MQTT服务器返回响应耗费时长。 sent_bytes Long 发送的字节数。 recv_bytes Long 接收的字节数。 return_code Integer MQTT服务器返回码。 user_id Integer APITest返回的用户标识ID,详见:详见默认响应提取。
  • 测试用例实现流程与实践 在华为云CodeArts TestPlan的测试用例功能中,可以结合特性级的测试需求分析、设计,进行与用例实现,回答如何实现测试的问题;在产品总体测试策略的指导下,制定测试执行阶段的工作策略,回答如何组织测试执行的问题。 表1 本流程阶段活动描述 关键活动 活动描述 活动输入 活动输出 自动化测试分析 自动化测试工程师分析产品测试是否可进行自动化、自动化的投入产出是否值得,以及哪些部分的特性适合进行自动化,适合使用的自动化工具。 测试需求分析报告 测试方案 自动化测试分析报告 自动化测试工具开发/二次开发 自动化测试工程师根据测试特性的自动化测试需求,对自动化工具进行二次开发或者优化,以满足自动化测试。 自动化测试分析报告 自动化测试工具 测试用例实现 测试经理组织成员进行测试用例实现,包括自动化测试用例的实现。 特性测试方案 专项测试方案 测试用例 测试脚本/代码/数据准备 测试经理组织小组成员为要执行的用例准备测试代码和数据,以及对要进行自动化的用例编写脚本。 测试用例\自动化测试方案 测试脚本、代码、数据 自动化用例调试 在SDV测试环境准备及构建模块集成和测试过程中,自动化测试工程师应与测试工程师共同进行自动化用例的调试,使自动化用例可以在工具中正常执行;此项工作应在产品版本满足调试的情况下尽早开展。 测试用例 自动化脚本 调试通过的自动化测试用例 父主题: IPD测试流程与实践
  • 测试评估流程与实践 在一轮测试或者一个迭代测试完成,测试经理可组织测试组成员在华为云CodeArts TestPlan质量中心输出测试报告,进行本轮或本迭代执行评估,为后续的测试活动总结经验和教训,并为测试策略优化提供依据。 关键活动 活动描述 活动输入 活动输出 准备测试报告 测试经理根据缺陷分析输出的产品质量情况,测试用例执行情况编写测试报告; 测试报告应侧重于经过测试后对产品质量状况的分析和报告;测试执行过程的总结建议纳入阶段结束评估报告中。 缺陷分析报告 度量表 测试报告 测试评估 在一轮测试或者一个迭代测试完成,并进行了度量分析后,测试经理可组织测试组成员进行本轮或本迭代执行评估,确定本次测试对象是否满足发布要求,并且为后续的测试活动总结经验和教训,并为测试策略优化提供依据。 测试度量表 缺陷分析报告 - 父主题: IPD测试流程与实践
  • 示例 请求url路径 如下图所示,请求url路径中参数“test”的值为生成指定范围随机生成小数函数,函数中的参数A为数字“1”、参数B为数字“100”、参数C为数字“2”。 请求头 如下图所示,请求头中参数“number”的值为生成指定范围随机小数函数,函数中的参数A为数字“1”、参数B为数字“100”,参数C为数字“2”。 请求体 如下图所示,请求体中应用了生成指定范围随机小数函数,函数中的参数A为二元加法运算“$add(1,1)”、参数B为二元乘法运算“$multiply(10,10)”、 参数C为数字“2”。 检查点属性 如下图所示,检查点属性“result”的目标值为生成指定范围随机小数函数,函数中的参数A为数字“1”,参数B为局部参数“test”。局部参数的设置方式请参考局部参数、参数C为数字“2”。 if判断 如下图所示,if判断的目标值为生成指定范围随机小数函数,函数中的参数A数字“1”,参数B为环境变量“status”。环境参数的设置方式请参考设置CodeArts TestPlan接口脚本的环境参数,参数C为数字“2”。 for循环中断条件 如下图所示,for循环中断条件的目标值为生成指定范围随机小数函数,函数中的参数A为数字“1”、参数B为数字“100”、参数C为数字“2”。
  • MongoDBQuery响应示例 [ { "_id" : { "$oid" : "62465c42907c00003d0076fe" }, "title" : "MongoDB 教程", "description" : "MongoDB 是一个 Nosql 数据库", "by" : "test", "url" : "", "tags" : [ "mongodb", "database", "NoSQL" ], "likes" : 100.0}, { "_id" : { "$oid" : "62465ce4907c00003d0076ff" }, "title" : "PHP 教程", "description" : "PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。", "by" : "test", "url" : "", "tags" : [ "php" ], "likes" : 200.0}, { "_id" : { "$oid" : "62465ce8907c00003d007700" }, "title" : "Java 教程", "description" : "Java 是由Sun Microsystems公司于1995年5月推出的高级程序设计语言。", "by" : "test", "url" : "", "tags" : [ "java" ], "likes" : 150.0} ]
  • 用例规范检查 测试计划服务支持对创建的接口自动化测试用例进行规范检查,根据检查结果对用例进行优化。详细的编写规范请参考测试用例编写规范。 此功能为您提供65天试用期,如果您想继续使用,后续需要开通测试计划专业版套餐或CodeArts专业版以上套餐来延续您的高阶体验 完成新建接口自动化测试用例后,在页面下方单击“规范检查”,检查结果将显示在页面下方。 用户可以根据提示信息对用例进行优化,单击对应的规范描述可以查看详细规范信息。 用例编写完成后,单击“保存”。
  • 请求体 请求体是接口请求需要传递的消息(报文),支持文本、JSON请求体、表单参数三种格式。 当请求消息方式选择POST、PUT、DELETE、OPTIONS、PATCH、HEAD时,页面中会出现请求体;请求消息方式为GET时不显示请求体。 文本:可以输入标准json串,与选择JSON类型请求体使用方式一致。 表单参数:支持文本和文件两种类型。 文本类型:设置参数名和值。 文件类型:设置参数名,并通过上传文件为参数赋值,文件类型不限。
  • 请求URL与URL参数 在接口自动化用例的“脚本”页签中填写需要请求的URL、支持HTTP/HTTPS请求。 接口自动化可以支持以下类型URL请求方式。其中,新建的URL的请求方式默认为GET方式。 请求方式 说明 GET 从API检索数据。 POST 上传文件和添加新数据。 PUT 替换现有数据。 DELETE 删除现有数据。 HEAD 获取响应的HTTP头。 OPTIONS 预检请求。 PATCH 更新一些现有数据的字段。 在请求URL中支持使用环境参数、局部参数以及响应提取参数,使用方法请参考设置CodeArts TestPlan接口脚本的测试用例参数。
  • 请求头 接口自动化预置HTTP协议的常用请求头,在请求头模块,输入要填写的请求头信息。 请求头支持表单、文本两种格式。页面中默认使用表单形式,通过图标进行表单和文本的切换。 表单:在请求头“名称”列选择或输入请求头名称,在“值”列选择/输入内容。 文本:需要按照“key:value”的格式填写请求头。 与表单模式不同的是,文本模式仅支持对“请求头名称”和“值”进行配置操作,但不支持对“描述”进行配置操作。 填写请求头时需要关注以下两点约束条件: 请求头的总数不能超过30。 请求头的长度不能超过10000。 测试计划服务中预置了多个常用的HTTP请求头,详情如下表: 请求头名称 说明 Accept 能接受的回应内容类型(Content-Types),如:text/plain等。 Accept-Charset 能接受的字符集,如:utf-8等。 Accept-Encoding 能接受的编码方式列表:compress | gzip | identity。 Accept-Language 能接受的回应内容的自然语言列表,如:en-US等。 Accept-Datetime 能接受的按照时间来表示的版本。 Access-Control-Request-Method 用于预检请求让服务器知道哪些HTTP方法的实际请求时将被使用。 Access-Control-Request-Headers 用于预检请求让服务器知道哪些HTTP头的实际请求时将被使用。 Authorization 用于超文本传输协议认证的认证信息。 Cache-Control 用来指定在请求/响应链中的所有缓存机制都必须遵守的指令。 Connection 浏览器优先使用的连接类型。 Cookie 由服务器通过Set- Cookie发送的一个超文本传输协议Cookie。 Content-Length 以八位字节数组(8位的字节)表示的请求体的长度。 Content-MD5 请求体内容的二进制MD5散列值,以Base64编码的结果。 Content-Type 请求体的多媒体类型(用于POST和PUT请求中),如:application/json。 Date 发送消息的日期和时间。 Expect 表明客户端要求服务器做出特定的行为。 Forwarded 包含来自被改变或丢失时代理参与请求的路径代理服务器的面向客户端的信息。 用于调试,统计和生成依赖于位置的内容,并且通过设计它可以显示隐私敏感信息,例如客户端的IP地址。因此,在部署此标头时必须牢记用户的隐私。 From 发起请求的用户的邮件地址。 Host 服务器的域名(用于 虚拟主机 ),以及服务器所监听的传输控制协议端口号。如果所请求的端口是对应的服务的标准端口,则端口号可省略。 自超文件传输协议版本1.1(HTTP/1.1)开始是必需字段,在服务中如果URL中填写的域名为IP地址会自动添加该字段,否则请将被测应用的IP与端口信息填写在该字段。 If-Match 仅当客户端提供的实体与服务器上对应的实体相匹配时,才进行对应的操作。主要用作像PUT这样的方法中,仅在用户从上次更新某个资源以来,该资源未被修改的情况下,才更新该资源。 If-Modified-Since 允许在对应的内容未被修改的情况下返回304未修改( 304 Not Modified )。 If-None-Match 允许在对应的内容未被修改的情况下返回304未修改( 304 Not Modified ),参考超文本传输协议的实体标记。 典型用法中,URL被请求时,Web服务器会返回资源和其相应的ETag值,且会被放置在HTTP的ETag字段中,然后,客户端可以决定是否缓存该资源和相应的ETag。以后,如果客户端想再次请求相同的URL,将会发送一个包含已保存的ETag和If-None-Match字段的请求。 If-Range 如果实体未被修改过,则向发送方发送其所缺少的那一部分或多个部分,否则,发送整个新的实体。 If-Unmodified-Since 仅当实体自某个特定时间以来未被修改的情况下,才发送回应。 Max-Forwards 限制消息可被代理及网关转发的次数。 Origin 发起一个针对跨来源资源共享的请求。要求服务器在回应中加入一个“访问控制-允许来源”(Access-Control-Allow-Origin)字段。 Pragma 与具体的实现相关,这些字段可能在请求/回应链中的任何时候产生多种效果。 Proxy-Authorization 用来向代理进行认证的认证信息。 Range 仅请求某个实体的一部分,字节偏移从0开始。 Referer 表示浏览器访问的前一个页面上的某个链接将浏览器带到了当前所请求的这个页面。 TE 浏览器预期接受的传输编码方式:可使用回应协议头Transfer-Encoding字段中的值;还可用“trailers”(与“分块”传输方式相关)值来表明浏览器希望在最后一个尺寸为0的块之后还接收到一些额外的字段。 User-Agent 浏览器的浏览器身份标识字符串。 Upgrade 要求服务器升级到另一个协议。 Via 向服务器告知请求是由哪些代理发出的。 Warning 一个一般性的警告,告知在实体内容体中可能存在错误。
  • 检查点说明 测试检查点又名断言,通过检查接口响应是否符合预期,判定系统是否满足预期。 在接口自动化用例详情中,测试步骤的“检查点”页签中可以定义测试检查点。 检查点内容包括属性、比较符和目标值定义。 字段 说明 重试次数 如果检查点失败,重新执行该测试步骤的次数,重试次数范围:0~5的正整数。 重试间隔 如果检查点失败,每次重试的间隔时长,单位为ms,重试间隔范围:0~10,000的正整数。 来源 被检测字段的来源,如响应体(JSON)、响应头、响应码、变量。 属性 在属性中,支持输入$调用全局变量、局部变量、内置函数。 若来源是响应码,属性可为空。详细介绍请参见响应码检查。 若来源是响应头,属性为响应头中字段的名称。详细介绍请参见响应头检查。 若来源是响应体(JSON),属性有两种填写方法: 普通提取表达式(非“$”开头),例如“item.name”。 取字段中的值,支持嵌套取值。详细介绍请参见响应体(JSON)检查。 从响应体中提取数组时,下标可以是数字,也可以是“key:value”表达式,详细介绍请参见示例:根据给定的key:value从响应体中获取字符串。 JsonPath表达式(“$.”或“$[”开头),例如“$.store.book[0].title”。 详细介绍请参见示例:根据JsonPath从响应体中获取数据。 若来源是变量,属性为全局变量,局部变量,响应提取后的变量。详细介绍请参见变量检查。 高级提取类型 可选项,使用高级提取类型,辅助提取检查点信息,若选择不涉及,则视为不使用额外的方式匹配。 目前有两种方式: 字符串提取,也就是字符串的截取,详见字符串提取说明。 正则表达式,即使用正则方式对来源字符串进行过滤,详见正则表达式说明。 高级提取类型优先使用字符串提取功能,若不能满足需求可考虑使用正则表达式。 类型值 高级提取类型中所需的参数。 比较符 支持数字、字符串、JSON对象比较、类型比较等多种比较符,详细介绍请参见比较符说明。 目标值 检查点期望值。目标值支持使用内置参数,请参考内置参数了解如何使用内置参数。
  • 响应体(JSON)检查 检查响应体(JSON)中对象字段的值。例如: 响应体结构如下: 检查响应体对象中字段名为“status”的值,检查点配置如下: 检查响应体(JSON)中某个数组的对象的字段值(数组条件采用下标确定对象,下标从0开始)。例如: 响应体结构如下: 检查响应体“result”数组的第1个元素对象字段名为“userId”的值,检查点配置如下: 检查响应体(JSON)中某个数组的对象的字段值(数组条件采用模糊匹配功能确定对象)。例如: 响应体结构如下: 检查响应体“result”数组下“name”是“啤酒”的所有对象取第1个之后获取id的值,检查点配置如下: 当获取的数组下的对象只有一个,“[0]”可以省略,示例中的表达式可以写为“result[name==啤酒].id”。 检查响应体“result”数组下“name”是“啤酒”的并且“obj”对象下属性“a”的值是“2”的对象的id值,检查点配置如下:
  • 比较符说明 测试计划服务支持以下比较类型: 比较类型 比较符 是否需要填入值 举例 数字比较 等于(数字) 不等于(数字) 大于等于(数字) 小于等于(数字) 大于(数字) 小于(数字) 是 响应码 等于 200 响应码 不等于 200 响应码 大于等于 200 响应码 小于等于 200 响应码 大于 200 响应码 小于 200 字符串比较 等于(字符串、区分大小写) 不等于(字符串、区分大小写) 等于(字符串、不区分大小写) 包含(字符串) 不包含(字符串) 是 响应体中的属性param1 等于 test 响应体中的属性param2 不等于 test 响应体中的属性param3 等于 TEST 响应体中的属性param4包含 tri 响应体中的属性param5不包含 tri 正则比较 正则表达式 是 响应体中的属性param1 正则表达式 ^[A-Za-z0-9]{1,32}$ 通用比较 是空(该字段是否为空,即是否没有该字段) 不是空(该字段是否不为空,即是否有该字段) 否 响应体中的属性param1 是空 响应体中的属性param2 不是空 Json数组比较 JSON数组为空数组(json数组是否为空数组) JSON数组为非空数组(json数组是否为非空数组) 否 响应体中的属性param1 JSON数组为空数组 响应体中的属性param2 JSON数组为非空数组 JSON数组的大小(json数组的大小是否为...) 是 响应体中的属性param1 JSON数组的大小 类型比较 是JSON类型(是否是json对象类型) 是JSON数组类型(是否是json数组类型) 否 响应体中的属性param1 是JSON类型 响应体中的属性param2 是JSON数组类型 Json对象比较 JSON等于(json等于) 是 响应体中的属性param1 JSON等于 {"name":"zhangsan"}
  • 系统关键字概述与一览表 接口自动化测试将常见的一些操作封装成关键字供用户使用,用于提升编写接口测试用例的效率,请参考表1。 系统关键字高阶特性为您提供65天试用期,后续需要开通测试计划专业版套餐或CodeArts专业版以上套餐来延续您的高阶体验。 表1 系统关键字一览表 分类 关键字集 认证类 在CodeArts TestPlan接口脚本中调用Get IAM Token关键字 在CodeArts TestPlan接口脚本中调用OAuth2For OneAccess 关键字 数据库操作类 在CodeArts TestPlan接口脚本中调用MySQLQuery关键字 在CodeArts TestPlan接口脚本中调用MySQLUpdate关键字 在CodeArts TestPlan接口脚本中调用MySQLInsert关键字 在CodeArts TestPlan接口脚本中调用MySQLDelete关键字 在CodeArts TestPlan接口脚本中调用OpenGaussQuery关键字 在CodeArts TestPlan接口脚本中调用OpenGaussUpdate关键字 在CodeArts TestPlan接口脚本中调用OpenGaussInsert关键字 在CodeArts TestPlan接口脚本中调用OpenGaussDelete关键字 在CodeArts TestPlan接口脚本中调用PostgreSQLQuery关键字 在CodeArts TestPlan接口脚本中调用PostgreSQLUpdate关键字 在CodeArts TestPlan接口脚本中调用PostgreSQLInsert关键字 在CodeArts TestPlan接口脚本中调用PostgreSQLDelete关键字 在CodeArts TestPlan接口脚本中调用MongoDBQuery关键字 在CodeArts TestPlan接口脚本中调用MongoDBInsert关键字 在CodeArts TestPlan接口脚本中调用MongoDBUpdate关键字 在CodeArts TestPlan接口脚本中调用MongoDBDelete关键字 中间件类 在CodeArts TestPlan接口脚本中调用RedisGet关键字 在CodeArts TestPlan接口脚本中调用RedisSet关键字 在CodeArts TestPlan接口脚本中调用OBSWrite关键字 在CodeArts TestPlan接口脚本中调用OBSDelete关键字 在CodeArts TestPlan接口脚本中调用OBSQuery关键字 在CodeArts TestPlan接口脚本中调用KafkaProducer关键字 在CodeArts TestPlan接口脚本中调用KafkaConsumer关键字 协议类 在CodeArts TestPlan接口脚本中调用TCP关键字 在CodeArts TestPlan接口脚本中调用UDP关键字 在CodeArts TestPlan接口脚本中调用WSConnect关键字 在CodeArts TestPlan接口脚本中调用WSRequest关键字 在CodeArts TestPlan接口脚本中调用WSWriteOnly关键字 在CodeArts TestPlan接口脚本中调用WSReadOnly关键字 在CodeArts TestPlan接口脚本中调用WSDisConnect关键字 在CodeArts TestPlan接口脚本中调用MQTTConnect关键字 在CodeArts TestPlan接口脚本中调用MQTTDisconnect关键字 在CodeArts TestPlan接口脚本中调用MQTTPublish关键字 在CodeArts TestPlan接口脚本中调用MQTTSubscribe关键字 在CodeArts TestPlan接口脚本中调用DubboClient关键字 父主题: 接口自动化用例系统关键字说明
  • 示例 请求url路径 如下图所示,请求url路径中参数“test”的值为二元乘法运算函数,函数中的参数A、B均为“100”。 请求头 如下图所示,请求头中参数“add”的值为二元乘法运算函数,函数中的参数A为二元除法运算“$divide(1000,100)”、参数B为“-1”。 请求体 如下图所示,请求体中应用了二元乘法运算函数,函数中的参数A为二元加法运算“$add(1000,1000)”、参数B为二元减法运算“$subtract(1001,1000)”。 检查点属性 如下图所示,检查点属性“result”的目标值为二元乘法运算函数,函数中的参数A为局部参数“test”,参数B为“1”。局部参数的设置方式请参考局部参数。 if判断 如下图所示,if判断的目标值为二元乘法运算函数,函数中的参数A为数字“100”,参数B为环境变量“status”。环境参数的设置方式请参考设置CodeArts TestPlan接口脚本的环境参数。 for循环中断条件 如下图所示,for循环中断条件的目标值为二元乘法运算函数,函数中的参数A、B均为“100”。
  • 示例 请求url路径 如下图所示,请求url路径中参数“test”的值为生成MD5哈希值函数,函数中的参数A为字符串“abc123”。 请求头 如下图所示,请求头中参数“Accept-Encoding”的值为生成MD5哈希值函数,函数中的参数A为字符串“abc123”。 请求体 如下图所示,请求体中应用了生成MD5哈希值函数,函数中的参数A为生成UUID函数“$uuid()”。 检查点属性 如下图所示,检查点属性“result”的目标值为生成MD5哈希值函数,函数中的参数A为局部参数“test”。局部参数的设置方式请参考局部参数。 if判断 如下图所示,if判断的目标值为生成MD5哈希值函数,函数中的参数A为环境变量“status”。环境参数的设置方式请参考设置CodeArts TestPlan接口脚本的环境参数。 for循环中断条件 如下图所示,for循环中断条件的目标值为生成MD5哈希值函数,函数中的参数A为字符串“abc123”。
  • 动态变量说明 测试套件中的多个用例间可能存在上下文关系,后执行的用例依赖先执行用例中接口的返回结果。例如所有的接口都需要鉴权信息,且鉴权信息有时效性,如果在每个用例里都去获取鉴权信息,用例的测试步骤会显得冗余,不易维护。 使用动态全局变量即可避免上述问题,在第一个执行的用例中获取鉴权信息后赋值给动态全局变量,后面执行的用例直接使用动态全局变量即可,无需重复获取鉴权信息。 设置动态变量。 在“接口自动化测试用例列表”页面,单击页面右侧“更多”,选择“环境参数”。 选中动态变量列的复选框,单击“保存”,将全局参数设置为动态参数。 赋值动态变量。 在接口自动化用例中,选择URL请求的“响应提取”标签下,单击匹配列的“添加”按钮。 在“赋值给环境动态参数”下拉列表中希望赋值的全局动态参数。 使用动态变量。 在测试用例中使用动态变量。 在需要使用全局动态变量的用例中,引用动态全局变量,引用方式请参见环境参数引用形式。 在测试套件中使用动态全局变量。 将2和3中的用例按顺序添加到测试套件中,选择“串行执行”,即可让使用动态变量的用例执行时使用到动态全局变量被赋值的最新值。 并行执行时动态变量的赋值和使用顺序不能保证,因此不推荐在并行执行时使用动态全局变量。
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全