标签: automated-testing

测试厨师食谱的最佳实践?

我的团队创作了大量厨师食谱。我想知道我应该研究哪些方法和框架,以便我们可以开始创建测试以确保我们的节点配置正确?

automated-testing testing configuration-management chef chef-solo

18
推荐指数
1
解决办法
8638
查看次数

如何为 iptables 编写自动化测试?

我正在使用iptables. 我想为断言以下内容的配置编写验收测试:

  • 来自互联网上某个人的流量未被转发,并且
  • 从公司 LAN 上的主机转发到 DMZ 中 Web 服务器上的端口 80 的 TCP。

一个古老的 FAQ暗示了一个iptables -C选项,它允许人们提出类似这样的问题,“给定一个从 X 到 Y,在端口 Z 上的数据包,它会被接受还是被丢弃?” 尽管 FAQ 建议它是这样工作的,因为iptables(但可能不像ipchains它在示例中使用的那样)该-C选项似乎没有模拟运行所有规则的测试数据包,而是检查是否存在完全匹配的规则。这作为测试的价值不大。我想断言规则具有预期的效果,而不仅仅是它们存在。

我已经考虑过创建更多的测试 VM 和一个虚拟网络,然后使用诸如nmap效果之类的工具进行探索。但是,由于创建所有这些额外虚拟机的复杂性,我避免使用此解决方案,这对于生成一些测试流量来说确实是一种非常繁重的方法。拥有一种自动化测试方法也很好,它也可以在生产中的真实服务器上运行。

我还能如何解决这个问题?我是否可以使用某种机制来生成或模拟任意流量,然后知道它是否被(或将被)丢弃或接受iptables

automated-testing iptables

13
推荐指数
1
解决办法
1124
查看次数

基础设施部署的测试驱动开发?

我一直在使用 puppet 来部署基础设施,而且我所做的大部分工作都是与 Web 2.0 公司合作的,这些公司热衷于为他们的 Web 应用程序进行测试驱动的开发。这里有没有人使用测试驱动的方法来开发他们的服务器配置?你使用什么工具来做到这一点?你的测试有多深?

deployment automated-testing testing

11
推荐指数
1
解决办法
1421
查看次数

惠普服务器的自动化硬件测试?

作为配置服务器的一部分,我们运行 HP 的 Insight Diagnostics 来测试硬件。这是一个手动过程。有没有办法自动运行 Insight Diagnostics?

hpdiags 软件带有选项“-rd:”“运行所有可诊断设备的诊断”。从我的测试来看,这并没有多大作用(它只是从磁盘读取 SMART 信息)。有没有人有更好的运气?

硬件:BladeCenter c7000 与 HP ProLiant BL460c 刀片、DL360s。

操作系统:ESXi 和 Ubuntu。

hardware automated-testing hp hp-proliant

9
推荐指数
1
解决办法
8520
查看次数

通过 Jenkins 进行盐态测试

全部,

我们正在尝试在我们的 Jenkins 设置中进行自动化测试,以在我们的 salt 状态文件 ( .sls) 中运行“smoke”和“lint”类型的测试。到目前为止,所有 google-foo 都产生了很少的信息。有一种test=True在命令行中进行测试的方法,但这不适用于无外壳帐户(就像 Jenkin 的帐户通常那样)。

我还没有遇到过对 SaltStack 状态进行这种自动测试的人。所以:

1)有没有可能

2)任何人都知道我可以查看的好资源

TIA。

automated-testing continuous-integration saltstack

7
推荐指数
1
解决办法
1998
查看次数

如何检测 Expect 脚本中的超时

考虑一个期望脚本,它生成一个命令并等待一系列事件。我们用它来测试软件。当超时时,我总是试图从脚本中获取失败返回值。

spawn some-command

set timeout 10

expect "First message"
expect "Other message"
Run Code Online (Sandbox Code Playgroud)

即使超时,此脚本也始终返回 0(成功)。处理超时的唯一方法是将每个 Expect 语句转换为:

expect {
    timeout { exit 1 }
    eof     { exit 1 }
    "First message"
}
Run Code Online (Sandbox Code Playgroud)

但这很快就会变得笨拙。有任何简化吗?是否有一个期望选项会导致早期超时/ eof 致命错误?

automation automated-testing expect

7
推荐指数
1
解决办法
4116
查看次数

如何使用 serverspec 测试文件缺失?

关于资源类型serverspec 指南没有解释如何测试文件的缺失,而不是它的存在。这是我能想到的最好的:

describe command('/bin/bash -c "[[ ! -e /var/foo ]]"') do
  its(:exit_status) { should eq 0 }
end
Run Code Online (Sandbox Code Playgroud)

这看起来非常笨拙,但比利用内置函数要好:

describe file('/var/foo') do
  it { should_not be_file }
  it { should_not be_directory }
  it { should_not be_socket }
  it { should_not be_symlink }
end
Run Code Online (Sandbox Code Playgroud)

有一个更好的方法吗?

linux automated-testing testing configuration-management

6
推荐指数
1
解决办法
3517
查看次数

在真实硬件上进行自动化软件测试

我目前正在工作的一个小型测试农场工作,尤其是在运行测试后重置机器的部分让我有些头疼。
在我们决定获得几台具有不同硬件配置的专用测试机器之前,计划是在一台使用 Hyper-V 的机器上运行测试,因此之后的清理只是删除实际 VM 的问题。
不幸的是,重置整台机器在时间上要贵一些,而且如果你经常这样做的话,我猜多年来硬件也会磨损。

我相信仅仅卸载已安装的软件是不够的,因为系统上可能会留下一些文件/可再发行文件,这使得后续的测试运行不太有用。
我还相信在测试机器上运行 Hyper-V 虚拟机会对测试结果产生不利影响,尤其是在较弱的硬件配置上。

我真的很想知道是否有一些现有的解决方案可以解决这个问题,以及最聪明的方法是什么。

automation windows deployment automated-testing

5
推荐指数
2
解决办法
120
查看次数

管理以太网交换机每端口 MAC 地址转换?

只是在黑暗中试一试,但我想我会问,以防万一有人有一些想法:

我有一个测试场景,其中一些(无 GUI/嵌入式)IPv6 设备将临时插入托管以太网交换机的端口,以及一个控制程序(在单独的 Linux PC 上运行,也连接到交换机) 将检测这些设备之一何时出现在 LAN 上,并自动运行测试以确保设备正常工作。

通常会同时连接十几个这样的设备(因此我们可以并行运行测试),并且设备将由不一定了解网络的人定期连接和断开连接;他们只知道如何插入以太网电缆,然后(几个小时后)查看 PC 的屏幕以查看测试是否通过。

当前的问题是如何在特定设备未通过测试时向测试人员指示。一种选择是错误日志/消息包含设备的 MAC 地址(源自其本地链路 IPv6 地址),这在紧要关头可能就足够了,但如果测试程序也可以说类似的话会更好“连接到端口 #5 的设备工作不正常,看看那个”。这样一来,测试人员就可以沿着以太网电缆找到故障设备,而不必弄清楚每个设备的 MAC 地址是什么,直到他/她找到匹配的设备。

认为Linux 计算机不可能知道特定设备连接到哪个交换机端口(如果我错了,请告诉我)。但假设是这种情况,下一个最好的事情是,如果我可以对交换机进行编程以进行 MAC 地址转换,例如,插入到端口 #n 的任何设备总是出现(对 Linux 计算机),就好像它有 MAC地址 foo:bar:baz:n,因此显示为 IPv6 地址 fe80::2foo:bar:baz:n。如果交换机像这样进行 MAC 地址转换,那么控制软件可以通过查看虚假 MAC 地址的最后一部分来确定设备连接到哪个端口。

所以我的问题是,任何托管以太网交换机都支持这种行为吗?如果是这样,这个功能叫什么(所以我可以找到一个开关)?如果没有,是否有更好的方法来解决我应该考虑的这个问题?

nat automated-testing ipv6 mac-address

1
推荐指数
1
解决办法
1956
查看次数