关于api:Apikit-自学日记添加测试步骤数据库步骤

4次阅读

共计 1834 个字符,预计需要花费 5 分钟才能阅读完成。

数据库步骤

在自动化测试用例中能够退出对数据库的操作,罕用于以下场景:

  1. 测试前对数据库插入测试数据。
  2. 革除脏数据。
  3. 查问 API 操作是否对数据库失效。
  4. 如需在自动化测试中退出数据库操作,须要进行以下 2 步:
  5. 在公共资源治理中增加数据库连贯信息
  6. 在测试用例中增加数据库操作步骤

增加数据库连贯信息

进入公共资源治理 - 数据库连贯,增加一个数据库连贯,在弹窗中能够抉择须要连贯的数据库类型以及填写数据库信息即可。

留神,为了平安起见,请勿在数据库连贯中填写任何生产环境的数据库信息,并且倡议独自为测试用的数据库连贯创立一个仅领有测试所需权限的数据库账号。避免因为误操作等起因导致业务数据失落。

在测试用例中增加数据库操作步骤

进入自动化测试用例详情页面,点击增加测试步骤下拉菜单,抉择 新建数据库操作:

抉择数据库连贯

在数据库步骤编辑页面,输出步骤的名称,抉择之前曾经创立好的数据库连贯:

填写 SQL 语句

在 SQL 语句输入框填写须要执行的 SQL 语句,能够填写多条 SQL 语句,每条语句应用分号“;”进行分隔。

您能够在 SQL 语句中输出特定的格局 ${参数名} 作为变量,零碎会自动识别变量并生成参数的映射表显示在 SQL 语句输入框的下方,能够在输入框中填写参数、援用其余步骤的参数或者援用测试数据。

鼠标搁置在参数值的输入框上时,会主动显示绑定其余步骤参数和关联数据集变量的按钮,您能够点击绑定按钮为该参数进行绑定,实现动静传参的成果:

填写参数传递信息

数据库的返回后果能够传递给后续测试步骤中进行应用。

为了传递数据库的返回后果,您须要进行以下几步操作:

  1. 定义一些变量名,给后续测试步骤进行绑定。
  2. 编写 Javascript 代码解析数据库的返回后果,并将须要传递的数据别离赋值给第一步中定义的变量。
  3. 在后续步骤中应用参数绑定性能,抉择数据库步骤中定义好的变量。
  4. 须要打印出数据库查问后果,能够应用 eo.info(db_result)打印,打印后在测试报告中查看,会返回一串 json 数据,查问内容蕴含在 result 中。

在预期返回信息的表单中定义一些变量名,此时零碎会主动在下方代码框中生成变量的定义语句。

比方当初心愿从数据库执行后果中获取 user_name,则定义一个 user_name 的变量名:

留神,零碎会主动在用户定义的参数名前增加 $db_param 的前缀,不便零碎辨认这是一个自定义的变量。请不要在代码中删掉该前缀。

编写 Javascript 代码解析数据库的返回后果,并将 user_id 的数据赋值给第一步定义的 user_id 变量。

假如当初搜寻 user_name = percy 失去一条数据库记录,咱们须要取其中 user_id 并传递给后续测试步骤应用。

零碎会将数据库执行的返回后果贮存在变量 db_result 中,db_result 的数据结构如下图:

因而咱们为 user_id 参数增加赋值语句即可:$db_param_user_id = db_result“query”“result”[“user_id”];

填写数据库操作后果的校验规定
您能够设置数据库操作后果的判断规定,零碎会依据规定对数据库操作后果进行判断。

校验全副语句执行胜利
零碎会主动依据数据库的返回信息判断所有 SQL 语句是否执行胜利,如果执行胜利则认为该数据库操作步骤测试通过。

如果在 SQL 语句输入框中有多条 SQL 语句,须要所有 SQL 语句都执行胜利才算是测试通过。

自定义校验规定
您能够编写 Javascript 代码对数据库执行的后果进行判断。
零碎会将数据库执行的返回后果贮存在变量 db_result 中 db_result 的数据结构如下图:

假如当初搜寻 user_name = percy 失去一条数据库记录,咱们须要取其中 user_id 判断是否等于 1。

在自定义校验规定中能够应用以下的示例代码:

// 如果数据库语句整体执行胜利  
if(db_result["status"]=="success")
{
    // 取出第一条语句执行的返回后果的第一条记录中的 user_id
    $user_id = db_result["query"][0]["result"][0]["user_id"];

    // 判断 user_id 是否为 1
    if($user_id!=1)
    {
        // 如果判断 user_id 不为 1,输入执行失败
        eo.stop("测试失败");
    }
    else
    {// 如果不返回任何信息或者应用 eo.stop()终止程序,则代表校验胜利
    }
}
else
{
    // 如果数据库语句整体执行失败,输入自定义语句
    eo.stop("数据库语句执行失败");
}
正文完
 0