记录1——loadrunner 浏览一个目录以及它的所有子目录直至浏览完到没有子目录为止(空目录或者文件)

本文详细记录了如何使用LoadRunner工具遍历一个目录及其所有子目录,直至遍历到没有子目录或文件的位置,满足特定的测试需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求:浏览一个目录以及它所有子目录直至所有目录浏览完到文件位置

//主函数
list_dir()
{
	//从顶层目录开始逐个浏览
	int i;
	for(i=1; i <= lr_paramarr_len("entry_doc_ids"); i++){
		listDir((lr_paramarr_idx("entry_doc_ids",i)));	
	}
	return 0;
}

//功能函数1
//释放数组里的变量
int lrlib_paramarr_delete(char* paramarr_name) {
    int i;
    int num_elements;
    char* element_name = (char*)malloc(strlen(paramarr_name) + strlen("_count") + sizeof(NULL));

    // TODO: Check that the parameter array exists

    num_elements = lr_paramarr_len(paramarr_name);
    for(i=1; i<=num_elements; i++) {
        sprintf(element_name, "%s_%d", paramarr_name, i);
        lr_free_parameter(element_name);
    }
    sprintf(element_name, "%s_count", paramarr_name);
    lr_free_parameter(element_name);

    free(element_name);
    return i; // total number of elements in the parameter array.
}
//功能函数2
//递归浏览目录
listDir(const char* dir_gns)
{
	
	//lr_start_transaction("list_dir");

	int length;
	int j;
	char* subGnssParamName = (char*)malloc(2048);
	char* subSizesParamName = (char*)malloc(2048);

	strcpy(subGnssParamName, dir_gns + (strlen (dir_gns) - 32));
	lr_message(subGnssParamName);
	strcat(subGnssParamName, "_sub_gnss");
	strcpy(subSizesParamName, dir_gns + (strlen (dir_gns) - 32));
	strcat(subSizesParamName, "_sub_sizes");
	lr_save_string (dir_gns, "tmp_gns");

	web_reg_save_param (subSizesParamName, "LB=\"size\":", "RB=}", "Ord=ALL", "Search=Body", LAST);
	web_reg_save_param (subGnssParamName, "LB=\"docid\":\"", "RB=\",", "Ord=ALL", "Search=Body", LAST);

	web_custom_request ("list_dir_transaction", 
		"URL=http://{ip}:{efsp_port}/v1/dir?tokenid={token_id}&method=list&userid={user_id}", 
		"Method=POST", 
		"Mode=HTTP", 
		"Body={\"docid\":\"{tmp_gns}\"}",
		LAST);
	
	for (j =1; j <= lr_paramarr_len(subSizesParamName); j++ ){

		if (strcmp(lr_paramarr_idx(subSizesParamName,j), "-1") == 0) {
			listDir(lr_paramarr_idx(subGnssParamName,j));
			//是目录	
		}
		else {
			//是文件
			lr_message("是文件!!");
		}
	}

    lrlib_paramarr_delete (subGnssParamName);
	lrlib_paramarr_delete (subSizesParamName);

	free(subGnssParamName);
	free(subSizesParamName);
	//lr_start_transaction("list_dir");
	return 0;
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值