spryker / robotframework-suite-tests
Robot Framework 的自动化测试
- dev-master
- dev-develop
- dev-report-generation-for-b2b
- dev-revert-908-feature/frw-7373/master-non-transactional-saving-for-data-exchange
- dev-dynamic-store-test-for-shops
- dev-bugfix/cc-33616-extend-robot-container
- dev-ui-dynamic-multistore-test
- dev-dummy-pr-in-master
- dev-dummy-branch
- dev-bugfix/frw-7619/master-bc-check-branch
- dev-job-api-for-dms-on
- dev-bugfix/cc-32438-fix-delete-push-notification-provider
- dev-feature/b2b-mp-integrations/frw-1162/frw-1421/frw-6285/frw-6331
- dev-fix-ci-issues
- dev-ci-smoke-set
- dev-backup-master
- dev-bugfix/cc-31600-fixed-warehouse-user-assigment-validation-fix
- dev-bugfix/cc-31600-fixed-warehouse-user-assigment-validation-demos
- dev-fix-upselling-products-review
- dev-bugfix/cc-25880-use-another-product-for-upselling
- dev-data-exchange-api-conflicts
- dev-dynamic-store-api
- dev-bugfix/cc-31029-fix-exception-for-deactivated-product-in-cart-skip-tests
- dev-ai-playground
- dev-bugfix/cc-30882-failing-robot-tests
- dev-feature/cc-26541/dev-shipment-types-sapi
- dev-cc-30088/integrate-demoshops-workflows
- dev-bugfix/frw-2376/adjusted-expect-for-error-messages
- dev-test-for-ui
- dev-configurable-product-tests-fix
- dev-bugfix/frw-2313/dev-fixed-currency-parameter
This package is auto-updated.
Last update: 2024-09-19 07:31:42 UTC
README
此存储库包含基于 Robot Framework 的 API 和 UI 测试集合。API 测试使用 Robot Framework 与 RequestsLibrary 结合使用,而 UI 测试则依赖于由 Playwright 提供的 Browser library。
安装
先决条件
Robot Framework 使用 Python 实现,安装它的先决条件是已安装 Python 或其替代实现 PyPy。另一个推荐的先决条件是拥有可用的 pip 软件包管理器。Robot Framework 需要 Python 3.6 或更高版本。
python3 -m pip install -U robotframework
python3 -m pip install -U robotframework-requests
python3 -m pip install -U robotframework-databaselibrary
- 根据您的配置安装 Python SQL 库
- 引擎: MySQL
python3 -m pip install PyMySQL
- 引擎: PostgreSQL
python3 -m pip install psycopg2-binary
UI 测试的安装
对于 UI 测试的安装,需要 Robot Framework、RequestsLibrary、DatabaseLibrary 和由 Playwright 提供的 Browser library。
如果您已安装了所有先决条件,那么您需要安装的是 Node.js 和 Browser library。
- 安装 Node.js®
- 安装 Browser library
python3 -m pip install -U robotframework-browser
- 初始化 Browser library
rfbrowser init
API 测试的安装
对于 API 测试的安装,需要 Robot Framework、RequestsLibrary、JSONLibrary 和 DatabaseLibrary。
如果您已安装了所有先决条件,那么您需要安装的是 JSONLibrary。
- 安装 JSONLibrary
python3 -m pip install -U robotframework-jsonlibrary
自动化安装
您也可以通过执行 shell 脚本 install.sh
一次性运行所有安装步骤。
如何运行测试
Robot Framework 测试用例通过命令行执行,默认的输出结果是一个 XML 格式的输出文件和一个 HTML 报告和日志。执行完成后,可以使用 Rebot 工具将输出文件合并并进行其他后处理。
注意:如果您希望使用本地环境的默认配置运行测试,您可以浏览到 Helper 部分
概要
robot [options] data
python -m robot [options] data
python path/to/robot/ [options] data
通常使用安装过程中创建的robot
命令来启动执行。或者,可以使用选定的Python解释器执行已安装的robot模块。如果Robot Framework安装在不同的Python版本下,这将特别方便。最后,如果您知道已安装的robot目录的位置,也可以使用Python执行。
无论执行方式如何,要执行的测试数据的路径(或路径)都作为命令后的参数给出。此外,可以使用不同的命令行选项以多种方式更改测试执行或生成的输出。
基本用法示例: robot -v env:{ENVIRONMENT} {PATH}
支持的CLI参数
CLI示例
- 通过docker/sdk执行api/suite文件夹中的所有测试(正负测试,所有存在的glue、bapi和sapi API测试)。
docker/sdk exec robot-framework robot -v docker:True -v env:api_suite -d results -s '*'.tests.api.suite .
- 执行api/b2b文件夹中的所有测试(所有存在的glue、bapi和sapi API测试)。
robot -v env:api_b2b -d results -s '*'.tests.api.b2b .
- 执行特定文件夹中的所有测试(文件夹及其子文件夹中存在的所有API测试)。
robot -v env:api_b2b -d results -s '*'.tests.api.b2b.glue.access_token_endpoints .
- 仅执行api文件夹中的正面测试(所有文件夹中存在的正面API测试)。
robot -v env:api_suite -d results -s positive .
- 执行tests/api/suite/glue/abstract_product_endpoints文件夹中所有正面和负面API测试。子文件夹(其他端点)也将执行。
robot -v env:api_suite -d results -s '*'.tests.api.suite.glue.abstract_product_endpoints .
- 执行tests/api/suite/glue/abstract_product_endpoints/abstract_products文件夹中所有正面和负面API测试。
robot -v env:api_suite -d results -s '*'.tests.api.suite.glue.abstract_product_endpoints.abstract_products .
- 在特定的云环境中执行MP-B2B的所有E2E UI测试。
robot -v env:ui_mp_b2b -v yves_env:http://yves.example.com -v zed_env:http://zed.example.com -v mp_env:http://mp.example.com -d results tests/ui/e2e/mp_b2b.robot
- 在特定云环境中,使用自定义DB配置执行B2B的所有API测试。
robot -v env:api_b2b -v db_engine:postgresql -v db_host:124.1.2.3 -v db_port:5336 -v db_user:fake_user -v db_password:fake_password -v db_name:fake_name -s '*'.tests.api.b2b.glue .
UI测试中支持的浏览器
由于Playwright自带所有浏览器的内置二进制包,因此不需要额外的驱动程序,例如geckodriver。
这些覆盖了全球超过85%使用的浏览器的浏览器可以在Windows、Linux和MacOS上测试。不再需要专用机器。
助手
对于本地测试,所有测试通常都是针对默认主机执行的。为了避免执行命令中的错误,可以使用Makefile助手快速启动运行。 注意:在macOS和Linux系统上不需要安装。大多数Linux发行版默认包含make
命令。要在Windows上运行Makefile,您需要安装一个名为“make”的程序。
支持的助手命令
助手示例
- 在本地环境中运行B2B的所有API测试
make test_api_b2b
- 在禁用docker/sdk命令的本地环境中运行MP-B2C的所有UI测试
make test_ui_mp_b2c ignore_console=true
- 在启用docker/sdk命令的本地环境中运行MP-B2C的所有UI测试,并指定您的应用程序位置
make test_ui_mp_b2c ignore_console=false project_location=/Users/your_user/projects/mp-b2b
- 在云环境中运行B2B的所有API测试
make test_api_b2c glue_env=http://glue.example.com bapi_env=http://bapi.example.com sapi_env=http://sapi.example.com
内置库
根据您的需求可以安装的外部库
完整列表可以在官方网站上找到
自动重新执行失败的测试
通常需要在系统测试或测试本身修复错误后重新执行测试子集。这可以通过按名称(--test和--suite选项)选择测试用例、按标签(--include和--exclude)或按先前状态(--rerunfailed或--rerunfailedsuites)进行选择来实现。
使用默认的合并输出方法将重执行结果与原始结果合并并不太好。主要问题是你会得到独立的测试套件,并且可能已经修复的失败也会显示出来。在这种情况下,最好使用 --merge (-R) 选项来告诉 Rebot 合并结果。在实践中,这意味着后者测试运行中的测试将替换原始结果中的测试。
合并测试的消息包含一个备注,说明结果已被替换。该消息还会显示测试的旧状态和消息。
合并的结果必须始终具有相同的顶级测试套件。合并输出中找不到的原始输出中的测试和套件将添加到结果输出中。
查看和生成关键字文档
测试中使用的关键字应该有文档记录。如果你向“common”文件夹内的文件中添加任何新的关键字,它们应该包含[Documentation]标签,该标签描述关键字的功能、参数含义并提供使用示例。
可以通过这些标签生成文档。目前,只有common_api.robot生成了文档。如果你添加了新关键字,你应该重新生成文档,并将其与所做的其他更改一起提交。
要为api、bapi和sapi测试生成文档,使用以下命令:libdoc resources/common/common_api.robot API_Keyword_Documentation.html
要查看文档,只需在任何浏览器中打开生成的html文件。
输出文件
在执行测试时创建几个输出文件,并且它们都与测试结果有关。
日志文件以HTML格式包含有关已执行测试用例的详细信息。它们具有层次结构,显示测试套件、测试用例和关键字详情。日志文件在需要详细调查测试结果时几乎总是需要的。尽管日志文件也有统计信息,但报告更适合获取更高级的概述。
命令行选项 --log (-l)
确定日志文件的创建位置。除非使用特殊值NONE,否则日志文件始终会创建,其默认名称为log.html。