我试图创建一些基本的检查测试来验证一组 HTTP URL。我开始的方式是这样的——
control 'http-url-checks' do
impact 1.0
title 'http-url-checks'
desc '
Specify the URLs which need to be up and working.
'
tag 'http-url-checks'
describe http('http://example.com') do
its('status') { should eq 200 }
its('body') { should match /abc/ }
its('headers.name') { should eq 'header' }
end
describe http('http://example.net') do
its('status') { should eq 200 }
its('body') { should match /abc/ }
its('headers.name') { should eq 'header' }
end
end
我们注意到 URL 是硬编码在控件中的,并且不是很有趣。我想将它们移动到某种“属性”文件中,并在控制文件中循环它们。
我的尝试是使用配置文件中的“文件”文件夹结构。我创建了一个文件 - httpurls.yml并在其中包含以下内容 -
- url: http://example.com
- url: http://example.net
..在我的控制文件中,我有结构 -
my_urls = yaml(content: inspec.profile.file('httpurls.yml')).params
my_urls.each do |s|
describe http(s['url']) do
its('status') { should eq 200 }
end
end
但是,当我执行合规性配置文件时,我收到一个错误 - 'httpurls.yml not found'(虽然不确定确切的错误消息)。以下是我的合规配置文件的文件夹结构。
我做错了什么?
有没有更好的方法来实现我想要做的事情?