response_body_filters

在对比前对响应体应用 Perl 过滤函数。

语法

--- response_body_filters 段指定一个 Perl 函数来预处理响应体,然后再与预期值比较。这对于去除不稳定的动态字段非常有用。

perl
1=== TEST 1: filter timestamp from body
2--- config
3 location /t {
4 content_by_lua_block {
5 ngx.say("time: " .. ngx.now())
6 ngx.say("data: hello")
7 }
8 }
9--- request
10GET /t
11--- response_body_filters
12s/time: [\d.]+/time: FILTERED/
13--- response_body
14time: FILTERED
15data: hello

response_body_filters 接收的是 Perl 的 s/// 替换表达式,对 $_ 变量进行原地操作。