机器人框架服务
rf-service的Python项目详细描述
射频业务
RobotFramework是一个为kubernetes集群运行测试/健康检查的服务。它可以在两种模式下工作:使用frontend按需执行和Kubernetes CronJob,它按给定的时间表执行测试并将其发布到Caddy服务器。在
快速入门
git clone https://github.com/devopsspiral/rf-service.git
cd rf-service
helm install rf-service ~/git/rf-service/chart/rf-service/
#By default rf-service-fe is exposed on http://rf-service.local
#If you running it on k3d/k3s you might need to add entries to you /etc/hosts
要运行测试,您需要首先转到“配置”选项卡,并定义fetcher(用于获取测试源)和publisher(定义放置结果的位置)。您可以使用内部caddy容器作为发布者目标,只需使用rf-service configuration中描述的配置文件中的值。在
如果使用默认设置作为CronJob执行,每分钟都应该有测试执行,结果将在results选项卡中发布。 执行的测试从KubeLibrary获取,并且 可能在集群上失败。如果您想看到它们通过,您需要k3s/k3d和示例grafana服务,如KubeLibrary README所述。在
使用
0.3.0变化
Helm chart尚不支持这些更改。
CLI改进
由于0.3.0 rf服务可以使用CLI参数以以下形式配置:
^{pr2}$相当于:
{
"fetcher": {
"type": "LocalFetcher",
"src": "~/test/source"
},
"publisher": {
"type": "LocalPublisher",
"dest": "~/test/results"
}
}
另外,CLI支持以下标志:
CLI parameter | Comment |
---|---|
-i/--include | include test tags |
-e/--exclude | exclude test tags |
依赖关系解析
为了使rf服务足够通用,可以作为不同类型测试用例的基础执行,增加了对pip需求的支持。如果fetcher收集包含^{em1}的目录,则使用这种方法$要求.txt文件,它将安装与pip install -r requirements.txt
相同的包。记得第一次发现吗要求.txt文件将被使用,所以最好在顶层目录中保存一个。在
构建自己的测试图像
rf服务映像应该只包含与运行RobotFramework测试相关的逻辑,要包含外部测试库,您应该构建自己的映像,类似于docker-k8s/Dockerfile
中的dockerfile:
FROM mwcislo/rf-service
COPY docker-k8s/requirements.txt .
RUN pip install -r requirements.txt
CMD rf-service
默认情况下,头盔图表使用此图像来运行测试
射频业务配置
如果将rf服务用作CronJob,则需要.json文件来配置其行为。它作为唯一的参数传递给rf服务可执行文件(请参见this line)
文件内容示例如下:
{
"fetcher": {
"type": "ZipFetcher",
"url": "https://github.com/devopsspiral/KubeLibrary/archive/incluster.zip"
},
"publisher": {
"type": "CaddyPublisher",
"url": "http://rf-service:8090/uploads"
}
}
它配置rf服务从给定的url(github中的分支)获取测试用例,并使用k8s服务dnrf服务(在执行helm安装时提供名为release-rf服务)在Caddy服务器上发布结果。您可以创建自己的获取器和发布器。在
在helmchart中,可以使用定义配置文件内容。值.config并在集群上作为ConfigMap保存。在
使用Web UI时(。值.config为空字符串)可以在“配置”选项卡中执行相同的配置。您需要分别保存Publisher和Fetcher配置。要使用内部Caddy容器,您需要传递http:///Caddy/uploads,即http://rf-service.local/caddy/uploads
舵图
下面的表格包含最重要的参数。在
^{tb2}$发展
# clone repo
git clone https://github.com/devopsspiral/rf-service.git
cd rf-service
# create virtualenv
virtualenv .venv
. .venv/bin/activate
pip install --user -r requirements.txt
export PYTHONPATH=./src:${PYTHONPATH}
cd src
python -m rf_runner.api
# or
scripts/rf-service [config.json]
# or from docker
docker run -it --rm -p 5000:5000 mwcislo/rf-service:0.x.0
# API is on http://localhost:5000/api/
# testing
python -m unittest
参考文献
文章
Robot Framework library for testing Kubernetes
Testing on kubernetes - rf-service
Intro to Vue.js. Testing on kubernetes - rf-service frontend.
存储库
- 项目
标签: