问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

LoadRunner 11中,在录制脚本的时候,更改录制脚本模式,点击ok后,Record options没有变化,更改不了

发布网友 发布时间:2022-05-02 01:44

我来回答

2个回答

懂视网 时间:2022-05-02 06:05

LoadRunner向MySQL数据库插入大量数据的过程。

 【1】需要使用到MySQL的libmysql.dll动态链接库,因此需要安装MySQL;注:本地安装的MySQL最好和MySQL数据库服务器上的版本一致;(本次使用的是MYSQL 5.6)

 【2】LoadRunner选择“CVuser”协议;

 技术分享

【3】选择“File”→“Add Files to script”,将MySQL Server 5.6/lib下的libmysql.dll载入;这样载入,相比在脚本中采用绝对路径,可移植性更好;

 技术分享

而后可以看到,左侧文件已被加入;

 技术分享

【4】使用libmysql.dll中的函数,完成脚本;

【5】当Insert SQL语句含有中文时,需要设置字符集为GBK,防止中文乱码:mysql_query(db_connection,lr_eval_string("SET NAMES gbk"));

完整代码:

(1)vuser_init.c文件内容

 

int rc; 
int db_connection; //数据库连接
int query_result; // 查询结果集 MYSQL_RES
char ** result_row; // 查询的数据行
char *server = "*.*.*.*"; //压测数据库IP地址
char *user = "test"; //压测数据库登录名
char *password = "test"; //压测数据库登录密码
char *database = "TESTDB"; //压测数据库名
int port = 8066;  //压测数据库端口号
int unix_socket = NULL; 
int flags = 1; 

vuser_init()
{

 // 找到libmysql.dll的所在位置.如果安装了mysql,并将dll文件导入了脚本内,可以直接load,不需要路径
 rc = lr_load_dll("libmysql.dll");
 if (rc != 0) 
 {
 lr_error_message("Could not load libmysql.dll");
 lr_abort();
 }

 // 创建MySQL对象
 db_connection = mysql_init(NULL);
 if (db_connection == NULL) 
 {
 lr_error_message("Insufficient memory");
 lr_abort();
 }

 // 连接到MySQL数据库
 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();
 }

 //若插入数据中含有中文,则需要设置字符集为GBK,防止中文乱码
 mysql_query(db_connection,lr_eval_string("SET NAMES gbk"));

 return 0;
}

 

(2)Ation.c文件内容

 

Action()
{
  //参数化CUS_CODE等参数; lr_save_string(lr_eval_string("INSERT INTO `so_customer` (`ID`, `CREATOR`, `CREATE_TIME`, `UPDATE_TIME`, `VERSION`, `SYNC_VERSION`, `REMARK`, `UDF`, `CUS_NAME`, `CUS_CODE`, `CUS_PHONE`, `CUS_FAX`, `CUS_ADDRESS`, `CUS_OWNER_ID`, `CUS_OWNER_NAME`, `CUS_OPERATION_EMPLOYEE_ID`, `CUS_OPERATION_EMPLOYEE_NAME`, `SETTLE_METHOD`, `CONTACT_PERSON`, `Z_CUS_ID`, `STATUS`, `TIME`) " "VALUES (NULL, ‘性能测试Creator‘, ‘2017-05-11 19:35:58.000000‘, ‘2017-05-11 19:35:58.000000‘, ‘25‘, ‘99990000000001‘, NULL, NULL, " "‘{CUS_CODE}‘, ‘{CUS_CODE}‘,NULL, ‘‘, ‘‘, ‘{ID}‘, ‘{NAME}‘, NULL, ‘‘, NULL, ‘性能测试专用‘, " "‘50000003{cus_id}‘, ‘1‘, ‘2017-05-05 19:13:55‘);"), "paramInsertQuery"); rc = mysql_query(db_connection, lr_eval_string("{paramInsertQuery}")); if (rc!= 0) { lr_error_message("%s", mysql_error(db_connection)); mysql_close(db_connection); lr_abort(); } return 0; }

 

(3)vuser_end.c文件内容

vuser_end()
{
 mysql_close(db_connection); 
 return 0;
}

备注:

  ①直接向数据库插入数据库,建议“Version”字段默认给1,该字段有时是乐观锁的实现方式之一,没有值可能导致服务器报“乐观锁”错误;

附录-----留存:

libmysql.dll动态链接库提供了很多函数来对数据库进行操作,大致可以分为以下几类:

函数的具体参数和使用方法也可以参考与libmysql.dll对于的头文件mysql.h

第一部分 控制类函数

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_da ta_seek()行定位

mysql_fetch_row()获取当前行

第四部分 线程类操作函数

mysql_list_processes()返回所有线程列表

mysql_thread_id()获取当前线程ID

mysql_thread_safe()是否支持线程方式

mysql_kill()杀列一个线程

第五部分 出错处理类函数

mysql_errno()获取错误号

mysql_error()获取错误信息

第六部分 已过时的函数

mysql_connect()

mysql_create_db()

mysql_drop_db()

mysql_eof()

mysql_reload()

mysql_escape_string()

 

LoadRunner11_录制MySQL数据库脚本

标签:数组   数据库名   ges   data   base   address   hone   close   version   

热心网友 时间:2022-05-02 03:13

不知道你具体的想问什么
录制脚本的时候,一般有2种方式,一种是自动录制
一种是手动控制,你随时可以自动的启动 暂停 停止录制
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果电脑电池充不进电苹果电脑充不进去电是怎么回事 苹果电脑不充电没反应苹果电脑充电指示灯不亮充不了电怎么办 狗狗更加忠诚护家、善解人意,养一只宠物陪伴自己,泰迪能长多大... 描写泰迪狗的外形和特点的句子 国外留学有用吗 花钱出国留学有用吗 !这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? 大学生早操的意义 大学生是否应该晨跑 我要2篇大学秋季运动会通讯稿,每篇150字左右。急,急。 谢谢 大学运动会通讯稿 春季大学运动会通讯稿。150字 大学生运动会通讯稿,急!!! 怎样写"大学生运动会"的新闻稿, 四不像是哪几种动物 降浊祛瘀颗粒,中成药名。有什么功效和作用? 四不像是什么动物曲意迎合是什么动物? 陈皮怎样泡水喝才能发挥出它中药的功效呢? 四不像?都像些什么动物呢? 陈皮颗粒,党参颗粒,车前子颗粒,白芍颗粒,白术颗粒这些治什么的 草晶华陈皮破壁饮片的功效 痛则不通,通则不痛 这句话出自哪里 小吃店装修报价 小吃店如何装修 100万房贷20年需要多少利息 天然气热水器钻孔费和开孔费的区别? “昔在黄帝,生而神灵,弱而能言,幼而徇齐,长而敦敏,成而登天”是什么意思? 平凉市崆峒区发现野生动物“四不像”,该动物究竟是什么物种? 哈库巴的基本资料 认沽权证是做空,认购是做多对吗 3斤的轩尼诗多少钱一瓶 轩尼诗xo3公斤多少钱? 上证50etf期权 认沽期权是不是做空(买跌)的意思? 香锅鸡翅虾的做法步骤图,香锅鸡翅虾怎么做 Hennessy轩尼诗XO3L 现在市场价是多少这个? 这款三斤装的轩尼诗xo市场价是多少钱? 期权串讲1,什么是股票期权 鸡翅大虾火锅做法 3升的轩尼诗XO干邑的价格?? 轩尼诗HENNESSY XO 鸡翅干锅虾的家常做法 邀请车主接单会加钱吗 鸡翅和虾一起做怎么好吃 鸡翅虾的做法 今天打滴滴顺风车,司机说五分钟就可以来接我, 干锅怎么做香辣鸡翅虾 虾和鸡翅的做法,怎么做才最好吃 梦见上班客人给钱