当前位置: 首页 > article >正文

ChatGPT与Postman协作完成接口测试(四)

        如果读者对Postman比较熟悉,一定会发现接口测试用例还存在可以优化的地方,例如对响应结果的验证。在接口测试工作中,仅仅发送请求而不对响应结果进行验证,是不够严谨的。因此,我们可以引导ChatGPT加入响应状态码断言、响应文本断言等。这里笔者输入相应提示词让ChatGPT在Postman脚本中加入使用pm.test的断言语句,如图5-24所示。

图5-24  加入使用pm.test的断言语句的Postman测试用例脚本(部分)

       加入使用pm.test的断言语句的Postman测试用例脚本如下所示,从中可以看到已经加入了状态码和文本验证的断言语句,即黑粗体字部分的内容。

加入使用pm.test的断言语句的Postman脚本

以下是经过修改的 Postman 测试用例脚本,包含使用‘pm.test()’方法的断言,结合注册的 ‘username’值,同时不使用环境变量:

{

  "info": {

    "_postman_id": "09e63d0d-9a62-4c3b-8a2d-76f352a12312",

    "name": "用户注册接口测试",

    "description": "测试用户注册接口的正常和异常情况",

    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"

  },

  "item": [

    {

      "name": "正常注册",

      "request": {

        "method": "POST",

        "header": [],

        "body": {

          "mode": "urlencoded",

          "urlencoded": [

            {

              "key": "username",

              "value": "testuser",

              "type": "text"

            },

            {

              "key": "password",

              "value": "testpassword",

              "type": "text"

            },

            {

              "key": "passwordConfirm",

              "value": "testpassword",

              "type": "text"

            },

            {

              "key": "firstName",

              "value": "John",

              "type": "text"

            },

            {

              "key": "lastName",

              "value": "Doe",

              "type": "text"

            },

            {

              "key": "address1",

              "value": "123 Main St",

              "type": "text"

            },

            {

              "key": "address2",

              "value": "98765",

              "type": "text"

            },

            {

              "key": "register.x",

              "value": "1.23",

              "type": "text"

            },

            {

              "key": "register.y",

              "value": "4.56",

              "type": "text"

            }

          ]

        },

        "url": {

          "raw": "http://127.0.0.1:1080/cgi-bin/login.pl",

          "protocol": "http",

          "host": [

            "127",

            "0",

            "0",

            "1"

          ],

          "port": "1080",

          "path": [

            "cgi-bin",

            "login.pl"

          ]

        }

      },

      "response": [],

      "event": [

        {

          "listen": "test",

          "script": {

            "exec": [

              "pm.test(\"Status code is 200\" function () {"

              "    pm.response.to.have.status(200);"

              "});"

              "pm.test(\"注册成功消息包含用户名\" function () {"

              "    pm.expect(pm.response.text()).to.include(\"Thank you <b>testuser</b>\");"

              "});"

            ],

            "type": "text/javascript"

          }

        }

      ]

    },

    {

      "name": "密码不匹配",

      "request": {

        "method": "POST",

        "header": [],

        "body": {

          "mode": "urlencoded",

          "urlencoded": [

            {

              "key": "username",

              "value": "testuser",

              "type": "text"

            },

            {

              "key": "password",

              "value": "testpassword",

              "type": "text"

            },

            {

              "key": "passwordConfirm",

              "value": "mismatchedpassword",

              "type": "text"

            }

          ]

        },

        "url": {

          "raw": "http://127.0.0.1:1080/cgi-bin/login.pl",

          "protocol": "http",

          "host": [

            "127",

            "0",

            "0",

            "1"

          ],

          "port": "1080",

          "path": [

            "cgi-bin",

            "login.pl"

          ]

        }

      },

      "response": [],

      "event": [

        {

          "listen": "test",

          "script": {

            "exec": [

              "pm.test(\"Status code is 400\" function () {"

              "    pm.response.to.have.status(400);"

              "});"

              "pm.test(\"注册失败消息包含错误信息\" function () {"

              "    pm.expect(pm.response.text()).to.include(\"Registration failed. Please check your input and try again\");"

              "});"

            ],

            "type": "text/javascript"

          }

        }

      ]

    }

  ]

}

这个脚本包括了使用 pm.test() 方法的断言,以验证正常注册和密码不匹配两种情况下的响应消息。希望这对您有所帮助!

       至此,我们一起验证了ChatGPT生成的Postman测试用例脚本完全可以正常运行。同时,利用ChatGPT还可以在Postman测试用例脚本中加入断言语句等,以不断完善接口测试用例脚本,让测试结果的展现更一目了然。


http://www.kler.cn/a/457670.html

相关文章:

  • Web安全 - “Referrer Policy“ Security 头值不安全
  • 等保测评和密评的相关性和区别
  • Linux中隐藏操作身法
  • Win11+WLS Ubuntu 鸿蒙开发环境搭建(二)
  • MinGW 和 MinGW-w64 的介绍与配置
  • Cause: java.sql.SQLException: sql injection violation, comment not allow异常问题处理
  • sql注入杂谈(一)--union select
  • Mysql(MGR)和ProxySQL搭建部署-Kubernetes版本
  • 【机器学习篇】穿越数字迷雾:机器深度学习的智慧领航
  • 【Hackthebox 中英 Write-Up】Manipulating a CRUD API | 操控 CRUD API:一步步提取 Flag
  • 一个线程中总共3个串行任务,在另一个线程中展示任务进行的实施进度。
  • XXL-TOOL v1.3.2 发布 | Java工具类库
  • 【10】Selenium+Python UI自动化测试 邮件发送测试报告(某积载系统实例-04)
  • Mac 安装Mysql启动Mysql以及数据库的常规操作
  • Python 中常见的一些画图形式
  • driftingblues6_vh靶机
  • 开源 AI 智能名片商城小程序:个人 IP 运营赋能商业腾飞
  • 计算机网络:TCP/IP网络协议
  • 【代码随想录|完全背包问题】
  • interceptor 和异常全局处理 Advice Advice中没有捕获异常
  • 【Linux】:Linux网络编程基础
  • 【学生管理系统】权限管理之角色管理
  • js的讲解
  • JSON结构快捷转XML结构API集成指南
  • 分布式版本管理工具——Git关联远程仓库(github+gitee)
  • Junit如何禁用指定测试类,及使用场景