几乎所有报表都提供导出下载功能,测试时为了模拟下载的场景,需要编写相关脚本。在HTTP中,没有任何一个方法或是动作能够标识“下载”这个动作,对HTTP来说,无论是下载文件或者请求页面,都只是发出一个GET请求,Loadrunner记录了客户端发出的对文件的请求,并能够收到文件内容。因此,完全可以通过关联的方法,从Loadrunner发出的请求的响应中获取到文件的内容,然后通过Loadrunner的操作方法,自行生成文件。
简单来说,只要实现对服务器返回所有内容保存到本地,就实现了“下载”的模拟,因此思路为:
1.针对所有返回内容保存到本地,这里采用关联函数可以实现web_reg_save_param
web_reg_save_param("fcontent", "LB=", "RB=", "SEARCH=BODY", LAST);
注意:由于参数SEARCH默认是针对消息头域和消息体,而我们保存目标仅在返回的body中,所以设置为body;
2.由于关联函数保存参数的参数值默认大小为1024字节,下载文件往往不止这个大小,所以在使用关联函数之前需要使用函数:web_set_max_html_param_len重新设置参数size
web_set_max_html_param_len("9000000");
3.把参数写入到本地文件,使用fwrite( const void *buffer, size_t size, size_t count