背景
项目上遇到一个问题,一个业务要先新建再审批,审批的时候需要根据新建数据的id来执行业务,这个id是新建成功后的response里面带的数据,页面上无法获取到,再没办法动数据库的情况下想要测审批的性能需要大量的id,只能通过loadrunner自动化新建然后将reponse里面的id输出出来来供审批使用了。loadrunner把id记录在txt里面然后供测试时使用。
上干货
别的不多说,看这个文章的应该是遇到问题需要解决的,直接来最实用的脚本先上截图,看的清楚些
Init的
action的
End的
然后是代码原文
int ff;
vuser_init()
{
ff=fopen("c:\\xnsj.txt","a+");
return 0;
}
Action()
{
extern int ff;
fprintf(ff,"aaaa\n");
fprintf(ff,"bbbb\n");
// fprintf(ff,"%s",lr_eval_string("{id}"));
return 0;
}
vuser_end()
{
extern int ff;//还是要先声明
fclose(ff);//关闭ff指向的文件
return 0;
}
解释一些细节
1过程
我们loadrunner是用c语言做脚本的,我们的输出用的也是c语言的东西,loadrunner的c语言对于文件操作是这样的:打开文件—写东西—关上文件。(感觉说了和没说一样)好吧,所有的写东西都是这样的,但是这里有几个点需要注意下,
1)它并没有说继续写东西,也就是说,只要写了,那就是整个文件更新,它不会说从上次的最末尾开始继续写,当然应该有办法能实现的,等我找到办法再更新这个文档。(好吧,后面有办法)
2)你得注意,打开文件就是通过进程占用这个文件了,如果牵扯到并发那么有可能造成多个进程打开同一个文件造成文件冲突
3)只有这里打开-写东西-关上,只有关闭以后文件才能被成功保存,如果不执行关闭文件不会保存。
这也是我把打开语句放在init,关闭语句放在end,action里面只放输出语句的原因,如果全放在action,那么文件中永远只有一条记录,因为每次action都会把文件内容重新覆盖。
对应语句
刚才说了3步,打开—写东西—关上。现在说说对应的
1)打开fopen,官方解释是
上面的意思是:(个人翻译)打开一个文件放在I/O缓冲区内,下面是函数用法
第一个参数是文件名,第二个参数是文件权限包括 r读,w写,a从文末追加写,好吧我前面说的当我没说