LoadRunner 操作MySQL数据库,执行SQL语句

MySQL_LoadRunner_libraries

首先要准备MySQL_LoadRunner_libraries,可百度自行下载,下载后放到LoadRunner对应目录(bin、include)

libmySQL.dll提供函数介绍

函数名称 函数说明
mysql_init() 初始化MySQL对象
mysql_options() 设置连接选项
mysql_real_connect() 连接到MySQL数据库
mysql_real_escape_string() 将查询串合法化
mysql_query() 发出一个以空字符结束的查询串
mysql_real_query() 发出一个查询串
mysql_store_result() 一次性传送结果
mysql_use_result() 逐行传送结果
mysql_free_result() 释放结果集
mysql_change_user() 改变用户
mysql_select_db() 改变默认数据库
mysql_debug() 送出调试信息
mysql_dump_debug_info() 转存调试信息
mysql_ping() 测试数据库是否处于活动状态
mysql_shutdown() 请求数据库SHUTDOWN
mysql_close() 关闭数据库连接
mysql_character_set_name() 获取默认字符集
mysql_get_client_info() 获取客户端信息
mysql_host_info() 获取主机信息
mysql_get_proto_info() 获取协议信息
mysql_get_server_info() 获取服务器信息
mysql_info() 获取部分查询语句信息
mysql_stat() 获取数据库状态
mysql_list_dbs() 获取数据库列表
mysql_list_tables() 获取数据库表列表
mysql_list_fields() 获取字段列表
mysql_field_count() 获取字段数
mysql_affected_rows() 获取受影响行数
mysql_insert_id() 获取AUTO_INCREMENT列的ID值
mysql_num_fields() 获取结果集中的字段数
mysql_field_tell() 获取当前字段位置
mysql_field_seek() 定位字段
mysql_fetch_field() 获取当前字段
mysql_fetch_field_direct() 获取指定字段
mysql_frtch_fields() 获取所有字段的数组
mysql_num_rows() 获取行数
mysql_fetch_lengths() 获取行长度
mysql_row_tell() 获取当前行位置
mysql_row_seek() 行定位
mysql_fetch_row() 获当前行
mysql_list_processes() 返回所有线程列表
mysql_thread_id() 获取当前线程ID
mysql_thread_safe() 是否支持线程方式
mysql_kill() 杀死一个进程
mysql_errno() 获取错误号
mysql_error() 获取错误信息

执行SQL语句代码

Action()
{
	int rc;
	int db_connection;
	int query_result;
	char** result_row;
	char *server = "xxxxxxxx";//数据库连接地址
	char *user = "user";//数据库账号
	char *password = "pwd";//数据库密码
	char *database = "db";//数据库
	int port = 3306;//数据库连接端口
	int unix_socket = NULL;
	int flags = 0;  

	//加载MySQL库
	rc =lr_load_dll("D:\\LoadRunner11\\bin\\libmysql.dll");//libmysql.dll本地位置

	if (rc != 0) {
		lr_error_message("不能加载libmysql.dll文件,请确认文件路径");
		lr_abort();//停止脚本
	}

	db_connection = mysql_init(NULL);

	if (db_connection == NULL) {
		lr_abort();//停止脚本
	}

	//初始化连接数据库
	rc = mysql_real_connect(db_connection,server,user,password,database,port,unix_socket,flags);

	if (rc == NULL) {
		lr_error_message("%s",mysql_error(db_connection));//输入错误信息
		mysql_close(db_connection);
		lr_abort();//停止脚本
	}

	rc = mysql_query(db_connection,"select phone_number from user where account='user'");

	lr_convert_string_encoding(lr_eval_string("{rc}"),"utf-8",NULL,"result");

	if (rc != 0) {
		lr_error_message("%s",mysql_error(db_connection));
		mysql_close(db_connection);
		lr_abort();//停止脚本
	}

	query_result = mysql_use_result(db_connection);//逐行传送结果

	if (query_result == NULL) {
		lr_error_message("%s",mysql_error(db_connection));
		mysql_free_result(query_result);
		mysql_close(db_connection);
		lr_abort();//停止脚本
	}

	while (result_row = (char **)mysql_fetch_row(query_result)) { //将结果当前行赋值给result_row
		if (result_row == NULL) {
			lr_error_message("没有查询到结果");
			mysql_free_result(query_result);
		    mysql_close(db_connection);
		    lr_abort();//停止脚本
		}
		lr_save_string(result_row[0],"no"); //保存结果到no
		lr_output_message("ID is: %s",lr_eval_string("{no}"));
	}
	mysql_free_result(query_result);//释放结果集
	mysql_close(db_connection);//关闭数据库连接
}


猜你喜欢

转载自blog.csdn.net/zhangkexin_z/article/details/107412560