Curl 如何在serverspec中使用或调节?

Curl 如何在serverspec中使用或调节?,curl,serverspec,Curl,Serverspec,我有一个网站的状态代码进行测试,使用curl命令获得网站的状态代码。有时它给出200和302状态代码。 我正在使用serverspec测试网站状态代码。 当我得到2个状态代码时,我想使用“或”条件来完成它。 我怎么能用它呢。 这是我的Serverspec测试用例 describe command('curl -IL --retry 4 "www.example.com"') do its(:stdout) { should match '200' or '302' } end 这一个给了我

我有一个网站的状态代码进行测试,使用curl命令获得网站的状态代码。有时它给出200和302状态代码。 我正在使用serverspec测试网站状态代码。 当我得到2个状态代码时,我想使用“或”条件来完成它。 我怎么能用它呢。 这是我的Serverspec测试用例

describe command('curl -IL --retry 4 "www.example.com"') do
  its(:stdout) { should match '200' or '302' }
end
这一个给了我一个错误。

我从未在serverspec中见过or。但也许可以通过命令本身解决这个问题:

describe command('curl -sL -w "%{http_code}\\n" "www.example.com" -o /dev/null | sed "s/200/OK/" | sed "s/302/OK/"') do
  its(:stdout) { should match 'OK' }
end

它不是“302正常”,而是“302未找到”。这就是它给出“HTTP/1.1 302 Found”或“HTTP/1.1 200 OK”的方式,不确定我们什么时候能让这两个注意这个命令。curl输出将仅为状态代码,如果是200或302,则稍后将其替换为“OK”。OK与状态代码的含义完全无关。