如何用Portman实现API自动化测试:Newman集成与CI/CD流程详解 如何用Portman实现API自动化测试Newman集成与CI/CD流程详解【免费下载链接】portmanPort OpenAPI Specs to Postman Collections, inject test suite and run via Newman ‍项目地址: https://gitcode.com/gh_mirrors/po/portmanPortman是一款强大的API自动化测试工具能够将OpenAPI规范转换为Postman集合并自动注入测试套件最终通过Newman执行测试。本文将详细介绍如何利用Portman实现API自动化测试并将其集成到CI/CD流程中帮助开发团队提升API质量和开发效率。什么是PortmanPortman是一个开源工具它的核心功能是将OpenAPI规范文件转换为Postman集合。与普通转换工具不同的是Portman还能自动为API端点生成测试用例包括状态码验证、响应时间检查、JSON Schema验证等。这些测试用例可以直接在Postman中运行也可以通过Newman在命令行或CI/CD管道中执行。Portman的工作流程主要包括以下几个步骤解析OpenAPI规范文件生成Postman集合注入自动化测试用例导出Postman集合或直接通过Newman运行测试安装Portman要开始使用Portman首先需要安装Node.js和npm。然后通过npm全局安装Portmannpm install -g apideck/portman如果你需要从源码构建可以克隆Portman仓库git clone https://gitcode.com/gh_mirrors/po/portman cd portman npm install npm run build npm link安装完成后可以通过以下命令验证安装是否成功portman --version基本使用方法从OpenAPI生成Postman集合使用Portman将OpenAPI规范转换为Postman集合非常简单。只需运行以下命令portman --input ./path/to/openapi.yml --output ./path/to/postman_collection.json这条命令会读取指定的OpenAPI文件生成Postman集合并保存到指定位置。配置文件定制Portman支持通过配置文件进行更精细的控制。创建一个portman-config.json文件可以指定测试生成规则、环境变量、请求头等。例如{ version: 1, tests: { responseStatusSuccess: true, responseTime: 500, responseJsonSchema: true }, environment: { baseUrl: https://api.example.com } }然后在运行Portman时指定配置文件portman --input ./openapi.yml --output ./collection.json --config ./portman-config.jsonPortman提供了默认配置文件portman-config.default.json你可以以此为基础进行修改。测试套件详解Portman能够自动生成多种类型的测试用例确保API的各个方面都得到验证。状态码验证Portman会根据OpenAPI规范中定义的响应状态码生成相应的测试。例如如果某个端点定义了200和404响应Portman会生成测试来验证这两种状态码。响应时间检查你可以配置Portman生成响应时间测试确保API在规定时间内返回结果。默认情况下Portman会检查响应时间是否小于500ms这个值可以在配置文件中修改。JSON Schema验证Portman会根据OpenAPI规范中的响应模式生成JSON Schema验证测试确保API返回的数据结构符合预期。请求参数验证Portman还能生成请求参数验证测试包括路径参数、查询参数和请求体。例如测试必填参数是否存在参数格式是否正确等。Newman集成Newman是Postman的命令行运行器可以用于执行Postman集合。Portman生成的集合可以直接通过Newman运行实现自动化测试。安装Newmannpm install -g newman运行测试使用以下命令通过Newman运行Portman生成的集合newman run ./path/to/postman_collection.json -e ./path/to/environment.json其中-e选项用于指定环境变量文件。生成测试报告Newman支持生成多种格式的测试报告如HTML、JSON等。要生成HTML报告需要安装newman-reporter-htmlnpm install -g newman-reporter-html然后运行newman run ./collection.json -e ./environment.json -r html --reporter-html-export report.htmlCI/CD集成将Portman和Newman集成到CI/CD流程中可以实现API测试的自动化。下面以GitHub Actions为例介绍如何配置CI/CD流程。创建GitHub Actions工作流文件在项目根目录下创建.github/workflows/api-test.yml文件内容如下name: API Tests on: push: branches: [ main ] pull_request: branches: [ main ] jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkoutv2 - name: Set up Node.js uses: actions/setup-nodev2 with: node-version: 16 - name: Install dependencies run: npm install -g apideck/portman newman newman-reporter-html - name: Generate Postman collection run: portman --input ./openapi.yml --output ./collection.json --config ./portman-config.json - name: Run API tests run: newman run ./collection.json -e ./environment.json -r html --reporter-html-export report.html - name: Upload report uses: actions/upload-artifactv2 with: name: api-test-report path: report.html这个工作流会在每次推送到main分支或创建拉取请求时运行API测试并生成测试报告。Postman集合同步Portman还支持将生成的Postman集合同步到Postman云端方便团队协作和分享。要实现这一点需要在Portman配置文件中添加Postman API密钥{ postman: { apiKey: your-postman-api-key, workspaceId: your-workspace-id, collectionId: your-collection-id } }然后运行Portman时添加--sync选项portman --input ./openapi.yml --config ./portman-config.json --sync高级功能测试用例变异Portman支持生成变异测试用例通过修改请求参数来测试API的健壮性。例如测试必填字段缺失、参数类型错误等情况。模糊测试Portman还可以生成模糊测试用例向API发送异常数据测试其错误处理能力。自定义测试脚本如果自动生成的测试不能满足需求Portman允许你添加自定义测试脚本。只需在配置文件中指定脚本路径{ tests: { customTests: [./custom-tests.js] } }总结Portman是一个功能强大的API自动化测试工具它能够将OpenAPI规范转换为带有测试用例的Postman集合并通过Newman实现自动化测试。通过将Portman集成到CI/CD流程中可以在开发过程早期发现API问题提高API质量和开发效率。无论是小型项目还是大型企业应用Portman都能为API测试提供全面的支持。它的灵活性和可扩展性使得开发团队可以根据自己的需求定制测试策略确保API的可靠性和稳定性。如果你还在手动编写API测试用例不妨尝试一下Portman它可能会彻底改变你的API测试方式【免费下载链接】portmanPort OpenAPI Specs to Postman Collections, inject test suite and run via Newman ‍项目地址: https://gitcode.com/gh_mirrors/po/portman创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考