Hello!
2014-04-29 23:39 GMT-07:00 aCayF:
> 我现在遇到的一个需求就是想要写出如下这样的测试用例
>
> === TEST 1: upload file
> --- config
> location /t {
> ......
> }
> --- request
> POST /t
> 文件
> --- no_error_log
> [error]
>
> 请问如何在这样的测试用例里添加一个实际的文件到--- request字段里?
>
如果你想用 multipart 格式上传东西,可以参考 lua-resty-upload 库的测试集:
https://github.com/openresty/lua-resty-upload/tree/master/t
如果你是嫌文件内容过大,不宜直接放进 .t 文件中,则可以使用一点点内联 Perl 代码来动态构造 --- request 段的值,比如
--- request eval
my $infile = "/tmp/data.txt";
open my $in, $infile or die "cannot open $infile for reading: $!";
my $data = do { local $/; <$in> };
close $in;
"POST\n" . $data;
这里你需要使用 eval 过滤器以便 Test::Nginx 将当前段落的值作为 Perl 代码来运行,并把运行结果作为当前段落最终的取值。
Regards,
-agentzh