limetecbiotechnologies/behat-logger-extension
Composer 安装命令:
composer require limetecbiotechnologies/behat-logger-extension
包简介
log the behat execution into json result
关键字:
README 文档
README
this package provides an extension for behat to log the test results in an json-file. this package also provide commands to validate and merge this json files.
Installation
INFORMATION: if you want to use the behat logger extension for your project, please read the "PHP Integration" section! The installation section installs only the cli-commands as standalone application
For users is now a docker-image available. For developers see PHP Integration
Migration from 1.x to 2.x
since the major release 2, the identification of tests for synchronization has changed. In version 1 the title of the scenario was used for synchronization. in this release, an id will used, given by an behat-tag. every test requires an unique identifier tag. for example "@testrail-case-1,@testrail-case-2, e.t.c." update your dependency to the last 1.x version and add the following properties to your .testrail.yml
api: ... identifier_tag_field: yourNewIdentifierField
execute the testrail:push:cases command to add all the ids to your cases in testrail. Now you can update to 2.x (but some .testrail.yml properties has changed!!!)
docker image
docker run -v /path/to/project/:/behat/ seretos/behat-logger-cli behat-logger-cli list
add the docker-container to your docker-compose.yml
version: '3.7' services: features-push: image: seretos/behat-logger-cli command: push volumes: - ./:/behat/ environment: TESTRAIL_SERVER: http://testrail:80 TESTRAIL_USER: yourTestrailLogin TESTRAIL_PASSWORD: yourTestrailPassword TESTRAIL_PROJECT: yourTestrailProject TESTRAIL_SUITE: yourTestrailSuite features-validate: image: seretos/behat-logger-cli command: validate volumes: - ./:/behat/
PHP Integration
add the package to your project as below
composer require seretos/behat-logger-extension --dev vendor/bin/behat-logger-cli --help
activate the logger in your behat.yml:
default: formatters: logger: ~ extensions: seretos\BehatLoggerExtension\BehatLoggerExtension: output_path: '%paths.base%/build/behat'
OPTIONAL: if you use an symfony application, you can add this extension (seretos\BehatLoggerExtension\BehatLoggerExtensionBundle) to your Symfony Kernel and integrate the commands in your cli
Command line usage
combine different result jsons into one file and one suite:
behat-logger-cli combine:logs [suite-name] --output=/output/path/ --regex=results/firefox*
if different jsons contain a testresult for one test with the same environment, this command throws an exception
convert all found feature-files to one json-file without results:
behat-logger-cli feature:to:log [suite-name] --output=/output/path/ --regex=features/
check that all scenarios in the log file has an unique title:
This command is deprecated please use validate:scenario:id in future!
behat-logger-cli validate:scenario:title [log-file.json]
check that all schenarios in the log file has an unique id tag:
behat-logger-cli validate:scenario:id [log-file.json] --identifier_tag_regex="/^testrail-case-([0-9]*)$/"
check that all tests are executed in the given environments:
# check that all browserless tests are executed behat-logger-cli validate:execution actual.json expected.json --tags=~javascript --environments=unknown # check that all browser tests are executed in firefox and chrome behat-logger-cli validate:execution actual.json expected.json --tags=javascript --environments=firefox --environments=chrome
send a json-result to testrail and create sections and cases
behat-logger-cli testrail:push:cases testRailSuiteName actual.json
send a json-result to testrail and create environment configurations:
behat-logger-cli testrail:push:configs actual.json
send a json-result to testrail and create results
behat-logger-cli testrail:push:results testRailSuiteName actual.json testResultName --milestone=v2.8.0
the commands testrail:push:cases and testrail:push:results requires an .testrail.yml in the current work directory with the following informations:
api: server: https://yourTestrail.testrail.io/ user: yourUser@mail.de password: yourPassword project: youtProject template: Test Case (Steps) type: Automated title_field: custom_preconds group_field: custom_automation_type identifier_field: custom_identifier identifier_regex: /^testrail-case-([0-9]*)$/ # set field an priorities on specific tags fields: /^.*$/: custom_automation_type: Behat priorities: /^priority_low$/: Low
log format
first of all, the json file contains the behat suite. if the log-writer can not detect the suite name, they use a suite named "default"
{
"suites": [
{
"name": "default",
"features": {
...
}
}
]
}
the suite contains a list of features:
"features": { "features\/featurefile.feature": { "title": "feature title", "filename": "features\/featurefile.feature", "description": null, "language": "en", "scenarios": { ... } }, ... }
and a feature contains scenarios with steps and results
"scenarios": { "scenariotitle": { "title": "scenariotitle", "tags": ["behattag1","behattag2"], "steps": [ { "line": 0, "text": "the user 'test' exists", "keyword": "Given", "arguments": [] }, { "line": 1, "text": "i logged in as 'test'", "keyword": "And", "arguments": [] } ], "results": [ ... ] }, ... }
and last but not least, contains the features results. the environment property is the browser name. on guette the environment name is setted to "unknown"
"results": [ "firefox": { "environment": "firefox", "duration": "1.00", "message": null, "stepResults": [ { "line": 0, "passed": true, "screenshot": null, "message": null }, { "line": 1, "passed": true, "screenshot": null, "message": null } ] } ]
limetecbiotechnologies/behat-logger-extension 适用场景与选型建议
limetecbiotechnologies/behat-logger-extension 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 9.71k 次下载、GitHub Stars 达 0, 最近一次更新时间为 2019 年 05 月 07 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「Behat」 「logger」 「extension」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 limetecbiotechnologies/behat-logger-extension 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 limetecbiotechnologies/behat-logger-extension 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 limetecbiotechnologies/behat-logger-extension 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Behat Context for testing Symfony Api
A Behat Extension that allows custom bootstrapping
Environment processor and contexts autoloader
Provides access to magento2 object manager from behat and allows to change magento config settings temporarly
A custom URL rule class for Yii 2 which allows to create translated URL rules
The Yii2 extension uses jQuery jquery.carousel-1.1.min.js and makes image carousel from php array of structure defined.
统计信息
- 总下载量: 9.71k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 9
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2019-05-07