东莞搭建网站要多少钱ydg wordpress theme
东莞搭建网站要多少钱,ydg wordpress theme,济南市建设网官网,wordpress首页正文内容怎么改在接口测试领域#xff0c;高效的自动化工具能显著提升测试效率、降低重复劳动成本。Postman 作为一款可视化接口测试工具#xff0c;凭借其易用性和强大功能成为开发者与测试人员的首选#xff1b;而 Newman 作为 Postman 的命令行运行工具#xff0c;完美弥补了 Postman …在接口测试领域高效的自动化工具能显著提升测试效率、降低重复劳动成本。Postman 作为一款可视化接口测试工具凭借其易用性和强大功能成为开发者与测试人员的首选而 Newman 作为 Postman 的命令行运行工具完美弥补了 Postman 图形界面在批量执行、持续集成等场景下的不足。本文将从基础概念入手逐步讲解如何使用 Postman 编写接口测试脚本并通过 Newman 实现自动化运行与报告生成同时附带详细示例代码与拓展知识帮助读者快速掌握这套主流的接口自动化测试方案。一、核心概念梳理Postman 与 Newman 是什么1.1 接口测试的核心价值接口是系统间数据交互的桥梁接口测试的核心目标是验证接口是否符合需求定义如请求参数、响应格式、业务逻辑等提前发现数据传输、权限控制、异常处理等方面的问题。相较于UI测试接口测试更底层、更稳定且执行效率更高是自动化测试体系中的重要组成部分。1.2 Postman 核心作用Postman 是一款支持HTTP/HTTPS、REST、SOAP等多种协议的接口测试工具提供图形化界面可快速创建请求、设置参数、验证响应。其核心优势包括可视化操作上手成本低无需编写代码即可完成基础接口测试支持环境变量、全局变量管理适配多环境开发、测试、生产测试场景内置Tests脚本编辑器可通过JavaScript编写断言实现接口自动化验证支持集合Collection管理可将多个接口按业务模块归类便于批量执行支持数据驱动测试可导入CSV/JSON数据文件实现多组参数测试。1.3 Newman 核心作用Newman 是 Postman 的命令行运行器基于Node.js开发可直接运行Postman导出的Collection文件。其核心价值在于脱离图形界面支持批量、定时执行接口测试脚本可生成HTML、JSON、XML等多种格式的测试报告清晰展示测试结果支持与Jenkins、GitLab CI等持续集成工具集成实现测试流程自动化支持命令行参数配置灵活适配不同测试场景。二、前置准备环境搭建步骤2.1 Postman 安装访问 Postman 官方网站https://www.postman.com/根据操作系统Windows/macOS/Linux下载对应版本的安装包双击安装包按照引导完成安装Windows系统需注意选择“添加到PATH”选项便于后续命令行调用打开 Postman可选择注册账号便于同步Collection或直接使用“Skip signing in”跳过登录进入主界面。2.2 Newman 安装Newman 基于Node.js需先安装Node.js环境安装 Node.js访问 Node.js 官方网站https://nodejs.org/下载LTS版本长期支持版安装过程中默认勾选“Add to PATH”验证 Node.js 安装打开命令行工具WindowsCMD/PowerShellmacOS/LinuxTerminal输入以下命令若显示版本号则说明安装成功node -v npm -v安装 Newman在命令行中输入以下命令全局安装Newmannpm install -g newman验证 Newman 安装输入以下命令显示版本号则安装成功newman -v安装 Newman 报告插件可选用于生成HTML报告npm install -g newman-reporter-html三、Postman 自动化脚本编写从单接口到集合本节以“用户管理系统”的3个核心接口用户列表查询、用户创建、用户删除为例讲解Postman脚本的编写流程包括请求配置、断言编写、环境变量设置、数据驱动配置。3.1 基础配置环境变量与全局变量多环境测试时如开发环境、测试环境接口基础URL、请求头参数等可能不同通过环境变量可统一管理避免重复修改。创建环境变量点击 Postman 主界面左侧“Environments”→“”新建环境命名为“用户管理系统-测试环境”添加环境变量变量名baseUrl变量值http://localhost:8080/api替换为实际接口基础URL变量名token变量值空后续通过登录接口获取后自动赋值点击“Save”保存在顶部环境选择框中切换到该环境。创建全局变量可选用于全局共享的参数点击“Environments”→“Globals”→“Edit”添加全局变量如timeout值为5000请求超时时间。3.2 单接口测试脚本编写以“用户列表查询”为例假设“用户列表查询”接口信息请求方式GET请求URL{{baseUrl}}/users{{baseUrl}}为环境变量请求头Authorization: Bearer {{token}}需要登录认证查询参数page1size10分页参数响应格式JSON包含code状态码、message提示信息、data用户列表数据创建Collection点击左侧“Collections”→“”命名为“用户管理系统接口测试”点击“Create”。添加请求右键Collection→“Add Request”命名为“查询用户列表”。配置请求信息请求方式选择“GET”请求URL输入{{baseUrl}}/users请求头点击“Headers”添加键值对Authorization→Bearer {{token}}查询参数点击“Params”添加参数page1、size10。编写断言脚本Tests标签断言用于验证接口响应是否符合预期Postman的Tests脚本基于JavaScript内置多种常用断言方法可直接选择使用。针对本接口编写以下断言// 1. 验证响应状态码为200请求成功pm.test(“响应状态码为200”, function () {pm.response.to.have.status(200);});// 2. 验证响应时间小于5000ms全局变量timeout的值pm.test(“响应时间小于” pm.globals.get(“timeout”) “ms”, function () {pm.response.to.have.responseTime.lt(pm.globals.get(“timeout”));});// 3. 验证响应格式为JSONpm.test(“响应格式为JSON”, function () {pm.response.to.be.json;});// 4. 验证响应体中code字段为0业务成功状态码pm.test(“业务状态码为0”, function () {var jsonData pm.response.json(); // 解析响应体为JSON对象pm.expect(jsonData.code).to.eql(0);});// 5. 验证响应体中包含data字段且data为数组pm.test(“响应体包含data数组”, function () {var jsonData pm.response.json();pm.expect(jsonData).to.have.property(“data”);pm.expect(jsonData.data).to.be.an(“array”);});// 6. 验证data数组长度小于等于10与查询参数size一致pm.test(“data数组长度≤10”, function () {var jsonData pm.response.json();pm.expect(jsonData.data.length).to.be.lte(10);});执行并验证点击“Send”发送请求查看“Response”区域的响应数据同时查看“Tests”标签下的断言结果绿色对勾表示断言通过红色叉号表示失败。3.3 接口依赖处理以“创建用户后删除”为例实际测试中接口间可能存在依赖关系如“删除用户”需先通过“创建用户”获取用户IDPostman可通过环境变量传递参数。3.3.1 编写“创建用户”接口脚本假设“创建用户”接口信息请求方式POST请求URL{{baseUrl}}/users请求头Authorization: Bearer {{token}}Content-Type: application/json请求体JSON{“username”:“test_user”,“password”:“123456”,“email”:“testexample.com”}响应体{“code”:0,“message”:“创建成功”,“data”:{“id”:1001,“username”:“test_user”}}右键Collection→“Add Request”命名为“创建用户”。配置请求信息请求方式POST请求URL{{baseUrl}}/users请求头添加AuthorizationBearer {{token}}、Content-Typeapplication/json请求体点击“Body”→选择“raw”→选择“JSON”输入请求体{ username: test_user, password: 123456, email: testexample.com }编写断言与参数传递脚本Tests标签// 1. 基础断言pm.test(“响应状态码为200”, function () {pm.response.to.have.status(200);});pm.test(“业务状态码为0”, function () {var jsonData pm.response.json();pm.expect(jsonData.code).to.eql(0);});// 2. 提取创建的用户ID存入环境变量供删除接口使用pm.test(“提取用户ID到环境变量”, function () {var jsonData pm.response.json();var userId jsonData.data.id;pm.environment.set(“userId”, userId); // 存入环境变量userIdconsole.log(“创建的用户ID” userId); // 控制台打印便于调试});3.3.2 编写“删除用户”接口脚本假设“删除用户”接口信息请求方式DELETE请求URL{{baseUrl}}/users/{{userId}}{{userId}}为创建用户时存入的环境变量请求头Authorization: Bearer {{token}}响应体{“code”:0,“message”:“删除成功”}右键Collection→“Add Request”命名为“删除用户”。配置请求信息请求方式DELETE请求URL{{baseUrl}}/users/{{userId}}请求头Authorization: Bearer {{token}}。编写断言脚本Tests标签pm.test(响应状态码为200, function () { pm.response.to.have.status(200); }); pm.test(业务状态码为0, function () { var jsonData pm.response.json(); pm.expect(jsonData.code).to.eql(0); }); pm.test(删除成功提示正确, function () { var jsonData pm.response.json(); pm.expect(jsonData.message).to.eql(删除成功); });3.4 数据驱动测试多组参数验证数据驱动测试通过导入外部数据文件CSV/JSON实现同一脚本多组参数的批量测试如验证不同用户名、密码的创建用户场景。3.4.1 准备数据文件CSV创建CSV文件命名为create_user_data.csv包含多组测试数据格式如下username,password,email,expectedCode,expectedMessage test_user1,123456,test1example.com,0,创建成功 test_user2,654321,test2example.com,0,创建成功 ,123456,test3example.com,1,用户名不能为空 test_user3,,test3example.com,1,密码不能为空说明第一行为表头与脚本中引用的变量名一致后续行为测试数据包含合法数据与异常数据。3.4.2 修改“创建用户”接口脚本适配数据驱动修改请求体将固定参数替换为CSV文件中的变量{ username: {{username}}, password: {{password}}, email: {{email}} }修改Tests脚本适配动态断言根据CSV中的expectedCode和expectedMessage验证pm.test(“响应状态码为200”, function () {pm.response.to.have.status(200);});// 动态断言业务状态码和提示信息pm.test(“业务状态码符合预期”, function () {var jsonData pm.response.json();var expectedCode parseInt(pm.iterationData.get(“expectedCode”)); // 获取CSV中的expectedCode转为数字pm.expect(jsonData.code).to.eql(expectedCode);});pm.test(“提示信息符合预期”, function () {var jsonData pm.response.json();var expectedMessage pm.iterationData.get(“expectedMessage”); // 获取CSV中的expectedMessagepm.expect(jsonData.message).to.eql(expectedMessage);});// 仅当创建成功时提取用户ID避免异常场景下提取失败pm.test(“创建成功时提取用户ID”, function () {var jsonData pm.response.json();if (jsonData.code 0) {var userId jsonData.data.id;pm.environment.set(“userId”, userId);console.log(“创建的用户ID” userId);}});3.4.3 配置数据文件并执行点击Collection名称→“Run”打开Collection Runner界面在“Data”区域点击“Select File”选择准备好的create_user_data.csv文件设置“Iterations”迭代次数即测试数据的行数点击“Run 用户管理系统接口测试”查看批量执行结果。四、Newman 自动化运行命令行与报告生成Postman的Collection编写完成后可导出为JSON文件通过Newman在命令行中运行实现脱离图形界面的自动化测试。4.1 导出Postman相关文件导出Collection右键Collection→“Export”→选择“Collection v2.1”推荐→保存为“user_management_collection.json”导出环境变量点击左侧“Environments”→选择创建的环境→“Export”→保存为“test_environment.json”准备数据文件将3.4.1中的create_user_data.csv文件与上述两个JSON文件放在同一目录下便于命令行调用。4.2 Newman 基础运行命令打开命令行工具进入文件所在目录执行以下基础命令newman run user_management_collection.json -e test_environment.json -d create_user_data.csv命令参数说明run指定要运行的Collection文件-e–environment指定环境变量文件-d–data指定数据驱动文件CSV/JSON。4.3 生成测试报告通过Newman的报告插件可生成HTML、JSON等格式的测试报告其中HTML报告最直观便于查看详细结果。4.3.1 生成HTML报告命令newman run user_management_collection.json -e test_environment.json -d create_user_data.csv -r html --reporter-html-export test_report.html参数说明-r–reporters指定报告类型html、json、xml等多个类型用逗号分隔如-r html,json--reporter-html-export指定HTML报告的输出路径和文件名默认生成在当前目录。4.3.2 查看HTML报告命令执行完成后在当前目录下会生成test_report.html文件用浏览器打开即可查看报告包含测试概览总用例数、通过数、失败数、通过率详细的请求与响应信息以及每个断言的执行结果测试耗时、环境信息等。4.4 常用进阶命令设置请求超时时间newman run user_management_collection.json -e test_environment.json -d create_user_data.csv --timeout-request 5000–timeout-request 5000单个请求超时时间为5000ms。静默运行仅显示最终结果不显示详细请求过程newman run user_management_collection.json -e test_environment.json -d create_user_data.csv -s-s–silent静默模式。批量生成多种报告newman run user_management_collection.json -e test_environment.json -d create_user_data.csv -r html,json,xml --reporter-html-export html_report.html --reporter-json-export json_report.json --reporter-xml-export xml_report.xml五、拓展进阶持续集成与高级技巧5.1 与Jenkins集成实现持续测试将Newman脚本集成到Jenkins中可实现代码提交后自动触发接口测试及时发现问题。前提Jenkins服务器已安装Node.js和Newman步骤同2.2创建Jenkins任务新建“自由风格项目”命名为“用户管理系统接口自动化测试”配置源码管理若脚本存放在Git仓库选择“Git”输入仓库地址和 credentials配置构建步骤点击“添加构建步骤”→“执行shell”Linux/macOS或“执行Windows批处理命令”Windows输入Newman运行命令cd 脚本所在目录 newman run user_management_collection.json -e test_environment.json -d create_user_data.csv -r html --reporter-html-export test_report.html配置构建后操作点击“添加构建后操作”→“Publish HTML reports”设置HTML目录为脚本所在目录HTML文件名为test_report.html点击“保存”。触发构建点击“立即构建”构建完成后可在Jenkins任务中查看HTML测试报告。5.2 Postman脚本高级技巧使用Pre-request Script预处理请求Pre-request Script在请求发送前执行可用于生成动态参数如时间戳、签名。示例生成请求签名假设签名规则为“参数密钥”的MD5加密// Pre-request Scriptvar timestamp new Date().getTime(); // 生成时间戳var secret “test_secret”; // 密钥var sign CryptoJS.MD5(“timestamp” timestamp secret).toString(); // 生成签名// 将时间戳和签名存入环境变量pm.environment.set(“timestamp”, timestamp);pm.environment.set(“sign”, sign);然后在请求参数中添加timestamp{{timestamp}}和sign{{sign}}。全局脚本复用将通用断言如响应状态码、响应格式封装为全局脚本避免重复编写点击Collection→“Edit”→“Pre-request Scripts”或“Tests”编写全局脚本该脚本会在Collection下所有请求的对应阶段执行。5.3 常见问题排查Newman运行时提示“找不到Collection文件”检查命令行当前目录是否正确检查文件名是否正确区分大小写。接口请求提示“401未授权”检查token是否有效可能已过期需重新获取检查Authorization请求头格式是否正确如Bearer后是否有空格。数据驱动时提示“变量未定义”检查CSV文件表头是否与脚本中引用的变量名一致检查数据文件是否正确导入Newman命令中-d参数是否指定正确。六、总结与实践建议PostmanNewman组合为接口自动化测试提供了“可视化编写-命令行运行-报告生成-持续集成”的完整解决方案具有上手快、灵活性高、生态完善等优势适合中小型项目或快速验证场景的接口自动化建设。实践建议先梳理接口文档明确接口的请求参数、响应格式、业务逻辑再编写测试脚本优先覆盖核心业务接口如用户登录、订单创建再逐步拓展到边缘接口定期维护测试脚本和数据文件适配接口变更结合持续集成工具将接口测试融入研发流程实现“早发现、早修复”。通过本文的实操步骤与示例代码相信读者已能掌握PostmanNewman自动化脚本的核心用法。在实际应用中可根据项目需求灵活拓展脚本功能不断优化测试效率。