在Jenkins测试时处理硬件资源
我想设置Jenkins来完成以下几件事:
1) 从我们的代码库中拉取源代码,
2) 编译并构建代码,
3) 在嵌入式设备上运行测试。
步骤1和步骤2在Jenkins中都比较简单明了。
至于步骤3,我们有数百个不同版本的设备,我希望找到一个工具(最好是用Python写的),能够处理这些硬件设备的可用性。
这样的话,某个步骤就能知道哪个设备是可用的,并在上面运行测试。
1 个回答
1
我发现,最好的做法是使用像Jenkins这样的工具,或者如果你在企业环境中,可以用Electric Commander来管理一个资源“池”。这个资源池基本上是一些虚拟设备,它们有一个特性,你可以通过IP地址或串口来调用一个Python脚本,与这些设备进行通信。
我用这个方法来自动化测试无线电设备。Python脚本管理了很多测试,而Commander会从资源池中选择一个单独的资源,这个资源有一个IP地址,然后把它传递给Python脚本。测试会执行所有的测试,输出结果会存储到Commander或Jenkins中……同时还设置了一些属性来跟踪测试的通过/失败次数。
//主要资源从池中获取单步项目,在主要资源中写了一个小脚本,询问从池中提取的项目的资源名称是否等于“Bench1”……“BenchX”等等。
基本上:
如果资源.name=="BENCH1":
python myscript.py --com COM3 --baud 9600
...
等等。
这样做的一个很棒的特点是,如果你需要断开某个设备,你不需要修改脚本,只需将Commander或Jenkins中的资源标记为禁用,主要的“项目”仍然可以从剩下的资源池中提取资源。