npm 包 @qtk/scenario-tester-framework 使用教程

阅读时长 9 分钟读完

随着前端应用的不断增加,应用功能的测试也变得愈加重要。前端测试框架可以帮助我们确保应用在长时间使用后,任何改动对于用户体验的影响都得到了验证。在这篇文章中,我将为大家介绍一个名为 @qtk/scenario-tester-framework 的 npm 包,它可以帮助我们轻松进行场景测试,让我们能够更快地实现测试结果。

什么是 @qtk/scenario-tester-framework

@qtk/scenario-tester-framework 是一个基于 Node.js 平台的前端场景测试框架。它提供了一个 API,可以让我们快速地编写自动化场景测试用例,在保证代码覆盖率和正确性的基础上,快速地进行测试。

该框架的主要特点及优势如下:

  • 易学易用:它的 API 设计简单、易学,用户只需要掌握基本 JSX 的写法即可上手。
  • 灵活可定制性高:该框架对测试用例的要求不严格,可以自由定制测试用例,也方便扩展新的测试用例。
  • 原理清晰,易于调试:它可记录每意图、所有页面流、场景实现等用于厘清测试中出现的问题,可以帮助我们快速定位问题。

安装

我们可以使用 npm 在我们的项目中安装 @qtk/scenario-tester-framework。

目前该 npm 包的最新版本为 v1.0.0。

如何使用

我们可以通过如下的方式引入该框架:

在测试实例对象 instances 中,我们需要将需要测试的组件或组件库作为具体的测试实例。下面我们以一个案例进行具体的介绍。

案例

我们将以一个使用 antd 组件库开发的注册页面为例,完成一个使用场景测试的用例。假设我们有一个注册页面,该页面包括了用户名、密码和确认密码这三个输入框,以及一个注册按钮。如果用户输入的用户名或密码不符合要求或密码两次输入不一致,那么就会弹出提示框,提示用户进行相应的修改。

为了完成这个场景测试用例,我们可以先定义场景的流程,然后根据场景的流程来进行测试。

场景的流程包括以下步骤:

  • 用户输入用户名 "JohnDoe"。
  • 用户输入密码 "P@ssw0rd"。
  • 用户再一次输入密码 "Ps@sw0rd"。
  • 用户点击注册按钮。

如果密码两次输入不一致,那么就会弹出一个提示框,提示用户修改。

根据场景流程,我们可以编写如下的测试代码:

-- -------------------- ---- -------
----- - ------- ------ ----- ----- --- - - ------------------------------------------
----- - -------- -- - - ------------------------------

------ -------- --------- -
  ----- ------ - ----- --- ---------
    ---------------------
    ---------
  ----- --------- - -
    ---------- ----------------------------------------
    --------- ----------------------------------------
    ---------------- -------------------------------------------
    ---------- -----------------------------------------------
    -- ------------
    ------------------- -- -- -
      -------------------------------------------------------------
    --
  --

  --- -
    ----- ------ - --- ------------------
    ----- ------
      -------- -- -
        ---------------------------------------------
      --
      -- ----- ---- ----------------- --------- - -------
      -------------------------------------- ----- -- -- -
        ----- --------- - --------------------
        ----- -------- - -------------------
        ----- --------------- - --------------------------
        ----- --------- - --------------------
        ------------ --------------------------------------------------------------------
        ------------ -------------------------------------------------------------------
        ------------ --------------------------------------------------------------------------
        ------------ --------------------------------------------------------------------------
      --
      -------------- ----------- ----- -- -- -
        ----- --------- - --------------------
        ----- ------------------------------
      --
      ------------ ------------ ----- -- -- -
        ----- -------- - -------------------
        ----- ------------------------------
      --
      -------------- ------------ ----- -- -- -
        ----- --------------- - --------------------------
        ----- -------------------------------------
      --
      ---------------- ----- -- -- -
        ----- --------- - --------------------
        ----- ------------------
      --
      ------------- ----- -- -- -
        ----- ----- - ----- ------------------------------------------------------------------
        ------------ --------------------------------
      --
      ----------------- ----- -- -- -
        -- ------------
        -------------------------------
        ----- ----- - ----- -----------------------------------------------------------------------------
        ------------ --------------------------------
      --
      ------
  - ------- -
    ----- --------------
  -
-----

在上面的代码中,我们首先通过 selenium-webdriver 模块创建了一个浏览器(这里使用的是 Chrome 浏览器作为例子),然后将页面上用户名输入框、密码输入框、确认密码输入框、注册按钮以及弹出的提示框等各个场景所需的元素都作为 instances 对象的属性。随后通过动态调用的方式创建了一个场景,如果密码输入不一致的场景出现,则通过点击弹出的提示框的按钮来模拟用户对场景的处理。

接下来,我们按照编写好的场景流程,编写 Given、When、Then 和 And 四个步骤对应的代码。其中,Go 是在编写完所有步骤之后,调用测试框架执行场景的方法。

当测试结束后,我们可以通过返回值来确认测试是否通过。如果通过,将返回 true;否则,将返回 false。

结论

通过该文章的介绍,我们可以看到,@qtk/scenario-tester-framework 可以帮我们轻松地进行自动化场景测试。在使用该框架进行测试时,我们需要将待测试的页面作为测试实例传入,而该框架的 API 设计简单易学、自由定制,也方便扩展新的测试用例,同时原理清晰,易于调试,可以帮助我们快速定位问题。

示例代码

你可以通过以下代码快速了解 @qtk/scenario-tester-framework 的使用方式:

-- -------------------- ---- -------
----- - ------- ------ ----- ----- --- - - ------------------------------------------
----- - -------- -- - - ------------------------------

------ -------- --------- -
  ----- ------ - ----- --- ---------
    ---------------------
    ---------
  ----- --------- - - -- ---- -- --

  --- -
    ----- ------ - --- ------------------
    ----- ------
      -------- -- -
        -- ----- --
      --
      ---------- ----- ----- -- -- -
        -- ---- --
      --
      -------- ----- ----- -- -- -
        -- ---- --
      --
      -------- ----- ----- -- -- -
        -- ---- --
      --
      ------- ----- ----- -- -- -
        -- ---- --
      --
      --------- ----- ----- -- -- -
        -- ---- --
      --
      ------
  - ------- -
    ----- --------------
  -
-----

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600671cd30d09270238228d4

纠错
反馈