Testinfra入门 使用Python包管理器(pip)和Python虚拟环境可以轻松安装Testinfra。 CentOS的软件包存储库中使用Testinfra。 在Testinfra中编写测试很容易。 Testinfra和Ansible Testinfra支持的后端之一是Ansible,这意味着Testinfra可以直接使用Ansible的清单文件和清单中定义的一组计算机对它们进行测试。 Testinfra提供与流行的监控解决方案Nagios的集成。 默认情况下,Nagios使用NRPE插件在远程主机上执行检查,但是使用Testinfra允许直接从Nagios主服务器运行测试。
要测试此角色是否按预期工作,您将使用Docker作为驱动程序在Molecule中创建测试,并使用Testinfra(用于测试服务器状态的Python库)创建测试。 使用Testinfra,我们将测试用例编写为使用Molecule类的Python函数。 testinfra.utils.ansible_runner:此Testinfra模块使用Ansible作为命令执行的后端。 testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner( os.environ['MOLECULE_INVENTORY_FILE 然后,Molecule将使用默认验证程序Testinfra运行验证程序操作。此操作执行您之前编写的测试test_default.py。
要测试此角色是否按预期工作,您将使用Docker作为驱动程序和Testinfra(一个Python库)在Molecule中创建一个测试用于测试服务器的状态。 使用Testinfra,我们将测试用例编写为使用Molecule类的Python函数。 testinfra.utils.ansible_runner:此Testinfra模块使用Ansible作为命令执行的后端。 在模块导入下,添加以下代码,该代码使用Ansible后端返回当前主机实例: ... testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner 完成的文件如下所示: import os import pytest import testinfra.utils.ansible_runner testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ com.aixiaoxian.testInfra.config.TestConfiguration DemoApplication.class, args); } } 最后我们可以看到输出: 2022-06-21 19:05:07.433 INFO 4598 --- [ main] c.a.testInfra.manager.TestManager : TestManager start 2022-06-21 19:05:07.456 INFO 4598 --- [ main] c.a.testInfra.manager.AiManager : AiManager start 2022-06-21 19:05:07.456 INFO 4598 --- [ main] c.a.testInfra.manager.AnnotationManager
一些典型的基础设施自动化测试工具有ServerSpec、Testinfra等。以下是一个ServerSpec的示例。
这期的技术雷达仍然关注了非功能性自动化测试,TestInfra是ServerSpec的Python实现,它使得用Pytest测试基础设施成为可能。 与此同时,仍然不断有人把其它语言下编写的工具转化为Python的版本,TestInfra就是这样一个例子。
这期的技术雷达仍然关注了非功能性自动化测试,TestInfra是 ServerSpec 的 Python 实现,它使得用Pytest测试基础设施成为可能。 与此同时,仍然不断有人把其它语言下编写的工具转化为 Python 的版本,TestInfra 就是这样一个例子。
查看:Serverspec, Testinfra 平台和固件安全 你的BIOS和其他低级接口受到错误影响。英特尔®AMT和管理引擎,以及Computrace应被禁用。
随着DevOps运动的发展,“基础设施即代码”的理念越来越深入人心,借助于molecule或者testinfra这样的工具,开发者可以像运行单元测试一样,对基础设施的配置进行测试。 ?
半年后,采用 Python 写的Testinfra也出现在了 2017 年 6 月技术雷达的 “试验” 区域。它们都可以通过工具无关的描述方式来验证基础设施的正确性。 相关条目:Puppet,Librarian-puppet and Librarian-Chef,Masterless Chef/Puppet,Provisioning Testing,Testinfra
在最新的一期技术雷达里,我们持续关注着这样的趋势,基于前面我们说的系统管理工具技术,像一些专门对基础设施即代码的测试工具,比如 molecule、testinfra 也越来越流行。 ?
- name: 验证NGINX监听端口 wait_for: port: 80 host: localhost timeout: 108.2 使用TestInfra