【讨论帖】初步接触LR性能测试工具,关于C语言脚本编程的malloc函数使用

         刚毕业时做过半年的CGI开发工作,各种缘由,转而做测试工作至今。做测试时间长了,发现一个优秀的测试人员必须具备一定编程的能力,于是,进入自身的技术修炼阶段,从学习LR性能测试开始。

        最近,用C语言纯手工编写了个测试发布功能的脚本,由于是初次接触LR这个工具,对其工作原理了解甚少,只能在实践中摸索,先给大家分享下我写的脚本。


Action()
{
    //申请指针类型的变量
	char *str_userid;
	char *str_token;
	char *str_status;
	char *str_code;
	char *str_header;
	
	/*
	    ......此时省略登录接口请求代码
	*/
	/*
		-------------ordinary_publish_ticket request--------------
    */

		//普通发布请求,header拼接,添加ua数据

		lr_save_string("{\"user_id\":","str_userid");
		lr_save_string(",\"token\":","str_token");
		lr_save_string(",\"mac\":\"\",\"screen\":\"\",\"client_version\":\"2.3.0\",\"device_name\":\"\","
				   "\"device_version\":\"\",\"device_token\":\"\",\"city_id\":\"\",\"channel_id\":\"\",\"platform_id\":\"\"}","str_header");

		web_add_auto_header("User-Agent",
						lr_eval_string("{str_userid}{user_id}{str_token}{token}{str_header}"));

		web_reg_save_param("status","LB=\"status\":","RB=,\"",LAST);
		web_reg_save_param("code","LB=\"code\":","RB=,\"",LAST);

		lr_start_transaction("PUBLISH_OR");

		web_custom_request("填写将要request的接口名称",
					   "URL=填写request的url地址",
					   "Method=POST",
					   "RecContentType=text/html",
					   "Snapshot=t2.inf",
					   "Mode=HTML",
					   "Body=填写request需要传递的参数值,根据实际需要进行参数化设置",
					   LAST);

		lr_end_transaction("PUBLISH_OR",LR_AUTO);
		
		/*
		    关于log输出的代码此处省略了
		*/
		
		return 0;
}
        以上脚本是经过多次调试可以使用的脚本,在这过程中,我遇到一个比较头疼的系统报错,从字面意思上理解,很像系统文件损坏。起初,我为char类型的指针变量动态分配了内存空间(因为书上说如果定义指针型的变量最好指定内存空间,防止负载运行时崩溃),设置迭代次数为1,但回放代码时就报错了,代码如下:
{
	char *str_userid=(char*)malloc(256*sizeof(char));
	char *str_token=(char*)malloc(256*sizeof(char));
	char *str_status=(char*)malloc(256*sizeof(char));
	char *str_code=(char*)malloc(256*sizeof(char));
	char *str_header=(char*)malloc(256*sizeof(char));

    /*
        省略接口测试代码
    */
    
    free(str_userid);
    free(str_token);
    free(str_status);
    free(str_code);
    free(str_header);
    
    return 0;
}


回放脚本的log日志如下:

折腾一天,各种百度,各种尝试,最后查到原因是LR运行的mmdrv.exe占用了大量内存空间,导致内存不足,崩溃了。

为什么耗费这么大内存,虽然申请了内存空间,但明明脚本结束之前我都释放了呢?是不是LR运行机制的特殊性导致的呢?原因我还没有查清楚,求各位有经验的技术大神解答。共同学习进步~

          

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值