zoukankan      html  css  js  c++  java
  • Jmeter接口测试-获取所有任务API

    获取所有任务

    GET /api/tasks 接口获取所有的任务,该接口需要鉴权。

    注意,默认情况下鉴权是关闭的。请确保app.coffee中的app.use(express_jwt(secret: jwt_secret).unless(path: ['/register', '/login']))的这条语句没有被注释,然后使用coffee -c app.coffee重新编译。

    鉴权失败

    我们试着在没有提供token的情况下访问 GET /api/tasks接口。

    新建http请求取样器,路径/api/tasks,直接运行,结果如下图所示。

    接口返回状态码401,这就证明了如果不登录的话获取所有任务的接口是无法直接访问的。

    鉴权并返回相应结果

    jwt鉴权的默认套路是在http请求的header中增加 Authorization: Bearer token字段。

    1. 在“用例:登陆成功”后新建HTTP信息头管理器,新增Authorization: Bearer ${login_token}字段
    2. 新建简单控制器,并将其名称修改为"用例:获取所有任务"
    3. 将http请求取样器名称修改为"获取所有任务",拖拽至简单控制器下,最终结果如下图所示

    运行后结果如下图所示,可以看到返回的状态码现在是200而并非未授权状态的401。另外该接口将数据库中所有的tasks以json字符串的形式返回,在开始阶段,你可以没有新建任何一个任务,返回的结果可能是[]

    第二步:添加http信息头管理器

    第三步:并且在信息头中添加新增Authorization: Bearer ${login_token}字段,如下图所示:

    我们看看这个获取token变量名的由来,这个在上一篇我们已经给大家介绍过了。

    第四步:添加一个简单控制器,将获取所有任务和HTTP信息头管理器放到简单控制器下面,保证整个过程的完整性。如图所示:

    第五步:运行获取所有任务的API,注意我们需要把登陆API激活,不然不登陆是无法获取所有任务的。

    第六步:我们获取所有任务以后需要断言,这里我们使用的是响应断言,先添加响应断言方法,如图所示:

    第七步:先取实际结果进行比对。

    第八步:进行获取所有任务成功后的实际结果和预期结果断言。

    最后断言成功,结果如图所示:

    使用正则表达式提取器来提取token

    说明:

    (1)引用名称:下一个请求要引用的参数名称,如填写Atask,则可用${Atask}引用它。

    (2)正则表达式:

        ():括起来的部分就是要提取的。

        .:匹配任何字符串。
        +:一次或多次。
        ?:不要太贪婪,在找到第一个匹配项后停止。

    (3)模板:用$$引用起来,如果在正则表达式中有多个正则表达式,则可以是$2$$3$等等,表示解析到的第几个值给title。如:$1$表示解析到的第1个值

    (4)匹配数字:0代表随机取值,1代表全部取值,通常情况下填0

    (5)缺省值:如果参数没有取得到值,那默认给一个值让它取,我填的not found。

    运行结果如下:

    执行顺序

    从上面的脚本结构图我们可以看出,HTTP信息头管理器位于登录用例和获取所有任务用例之间,这是因为我们必须通过登录用例来获取token,从而设置到HTTP信息头管理器中。一旦设置好了HTTP header,那么其后所有的请求都会带上Authorization: Bearer ${login_token}信息,这也是获得登录态的奥秘所在。

    因此我们可以看到,这些组件的执行顺序是:登录用例 -> 设置HTTP header -> 获取所有任务,登录成了获取所有任务的依赖,一旦登录失败,后续所有的请求都会失败,这其实是我们可以接受的结果。

  • 相关阅读:
    (数据集)Quality of Web Service (QWS) Datasets
    [扫盲] Salesforce.com: 业界云计算(Cloud Computing)的主要倡导者之一
    Major conference/journal for Web Service [updating]
    ICWS 2009 Accepted Research Paper List (63篇)
    [论文笔记]Web服务集成的策略规划 (CIMS 2008)
    [论文笔记]Global and Local QoS Guarantee in Web Service Selection (BPM 2005)
    [论文笔记](东北大学)基于组合服务执行信息的服务选取方法研究(计算机学报, 2008)
    WWW2009相关论文
    [文章笔记]Web Service Discovery and Client Goals(Computers, 2009)
    [论文笔记](东北大学)支持组合服务选取的QoS模型及优化求解(计算机学报06)
  • 原文地址:https://www.cnblogs.com/fighter007/p/8447259.html
Copyright © 2011-2022 走看看