LoadRunner访问Mysql数据库(转)
这是很久以前编写的一个测试案例,那时是为了检查大量往Mysql数据库里插入数据,看一下数据库的性能如何?服务器是否会很快就被写满了。
前期的准备工作:Mysql 数据库搭建,LoadRunner,libmysql.dll and 网上搜一份LoadRunner访问mysq的公共库。
Step1:Mysql数据库搭建(这里就不详细讲述如何安装Mysq数据库和创建表了)
IP:192.168.1.100
访问名:root
密码是:123456
数据库名是:t3db
访问端口是:3306
数据库的相关信息就是这样了!
Step2:LoadRunner如何连接mysql呢?
以下全都是在网上找到原代码,非本人创作(忘记作者是谁了,抱歉!)
int rc;
int db_connection;
char *server = "192.168.1.100"; // 数据库的ip地址
char *user = "root"; // 数据库访问用户名
char *password = "123456"; // 密码
char *database = "t3db"; // 数据库名称
int port = 3306; // 访问端口
int unix_socket = NULL;
int flags = 0;
char** result_row;
int query_result;
char szSql[256]; int MySqlInit()
{
rc = lr_load_dll("libmysql.dll");
db_connection = mysql_init(NULL); if (db_connection == NULL)
{
lr_error_message("Insufficient memory");
lr_abort();
} if(rc!=0)
{
lr_error_message("Load MySql.dll Error!");
lr_abort();
} rc = mysql_real_connect(db_connection,server, user, password, database, port, unix_socket, flags);
if(rc == NULL)
{
lr_error_message("connect mysql error! %s",mysql_error(db_connection));
mysql_close(db_connection);
lr_abort();
}
return rc;
} int MySqlUnit()
{
// 释放MySQL资源
mysql_close(db_connection);
return 0;
} int InsertValue(char* query)
{
rc = mysql_query(db_connection,query);
if (rc != 0)
{
lr_error_message("%s", mysql_error(db_connection));
} query = NULL;
return rc;
} int MySqlQuery(char* szSql)
{
rc = mysql_query(db_connection,szSql); if(rc != 0)
{
lr_error_message("%s",lr_eval_string("?"));
lr_error_message("%s", mysql_error(db_connection));
szSql = NULL;
return -1;
} query_result = mysql_use_result(db_connection);
if (query_result == NULL)
{
lr_error_message("%s", mysql_error(db_connection));
mysql_free_result(query_result);
szSql = NULL;
return -2;
} result_row = (char **)mysql_fetch_row(query_result);
if (result_row == NULL)
{
lr_error_message("Did not expect the result set to be empty");
mysql_free_result(query_result);
szSql = NULL;
return -3;
} mysql_free_result(query_result);
szSql = NULL;
return 0;
}
这里提供了几个公共函数,看名字大家都明白他们是干啥的。
Step3:Loadrunner里需要怎么编写写呢?
1、添加libmysql.dll到你的工程
2、把公共库添加到你的公共
3、vuser_init
vuser_init()
{
index = 0;
MySqlInit(); // 初始化数据库
return 0;
}
4、vuser_end
vuser_end()
{
MySqlUnit(); // 反初始化
return 0;
}
5、Action
Action()
{
int resultValue;
char cIndex[10];
char onceAccount[1024];
char insertQuery[22584]; index = index +1; // 组合插入数据库的sql语句
strcpy(insertQuery, "INSERT INTO `t3db`.`role`(GroupID, RoleName, Account, BaseInfo, ExtInfo, LastModify) VALUES('1', '");
strcat(insertQuery, lr_eval_string("{Account}"));
strcat(insertQuery, itoa(index, cIndex, 10 ));
strcat(insertQuery, "', 'q1031', '111', '111','2013-02-28 20:42:33')");
strcat(insertQuery, ";\0"); lr_start_transaction("Insert");
resultValue = InsertValue(insertQuery); // 调用插入函数 if(resultValue != 0)
{
lr_end_transaction("Insert",LR_FAIL);
}
else
{
lr_end_transaction("Insert",LR_PASS);
} sleep(100);
return 0;
}
整个过程就是如此了……
LoadRunner访问Mysql数据库(转)的更多相关文章
- LoadRunner访问Mysql数据库
这是很久以前编写的一个测试案例,那时是为了检查大量往Mysql数据库里插入数据,看一下数据库的性能如何?服务器是否会很快就被写满了. 前期的准备工作:Mysql 数据库搭建,LoadRunner,li ...
- LoadRunner访问 Mysql数据库
这是很久以前编写的一个测试案例,那时是为了检查大量往Mysql数据库里插入数据,看一下数据库的性能如何?服务器是否会很快就被写满了. 前期的准备工作:Mysql 数据库搭建,LoadRunner,li ...
- java文件来演示如何访问MySQL数据库
java文件来演示如何访问MySQL数据库. 注:在命令行或用一个SQL的前端软件创建Database. 先创建数据库: CREATE DATABASE SCUTCS; 接着,创建表: CREATE ...
- PHP访问MySql数据库介绍
在网站后台,经常要与数据库打交道.本文介绍如何使用XAMPP来管理MySql数据库及如何用PHP来访问MySql数据库. 一.使用XAMPP来管理MySql数据库 首先使用XAMPP打开MySql的管 ...
- C#连接、访问MySQL数据库
一.准备工具 visual stuido(本示例使用visual studio 2010) MySql.Data.dll mysql_installer_community_V5.6.21.1_set ...
- 在Eclipse中使用JDBC访问MySQL数据库的配置方法
在Eclipse中使用JDBC访问MySQL数据库的配置方法 分类: DATABASE 数据结构与算法2009-10-10 16:37 5313人阅读 评论(10) 收藏 举报 jdbcmysql数据 ...
- C#访问MySQL数据库(winform+EF)
原文:C#访问MySQL数据库(winform+EF) 以前都是C#连接SQLServer,现在MySQL也比较火了,而且是开源跨平台的,这里连接使用一下,主要是体会一下整个流程,这里使用的是winf ...
- 老李分享:loadrunner操作mysql数据库
老李分享:loadrunner操作mysql数据库 在poptest测试开发工程师就业培训的课程中,针对一套商业系统进行性能测试,目标是mysql后台数据库的负载能力,在这里我把测试代码 ...
- Spring Boot入门(六):使用MyBatis访问MySql数据库(注解方式)
本系列博客记录自己学习Spring Boot的历程,如帮助到你,不胜荣幸,如有错误,欢迎指正! 本篇博客我们讲解下在Spring Boot中使用MyBatis访问MySql数据库的简单用法. 1.前期 ...
随机推荐
- 解决PHPExcel列超过26的问题
$column = PHPExcel_Cell::stringFromColumnIndex(index);//index对应的就是列,从0开始 $objPHPExcel->getActiveS ...
- 配置无线AP 采用POE供电模块怎么配置无线AP没有POE交换机
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha 采用POE供电模块怎么配置无线AP没有POE交换机 IP-com f130ap http ...
- POJ3480 John 博弈论 anti-nim anti-SG
http://poj.org/problem?id=3480 anti-nim其实是anti-SG的一种,就像nim是sg的一种一样.(或者说sg是nim推广?) 看名字就是规则和nim相反,取到最后 ...
- BZOJ 4327 JSOI2012 玄武密码(后缀自动机)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=4327 [题目大意] 求每个子串在母串中的最长匹配 [题解] 对母串建立后缀自动机,用每 ...
- 【推导】Codeforces Round #364 (Div. 2) D. As Fast As Possible
一种方法是二分总时间,复杂度O(nlogn). 另外我们可以证明,当所有人同时到达终点的时候,是最优的,因为没有人的时间“浪费”了. 我们又发现,每个人的运动过程总是两段,要么是走路,要么是坐车.于是 ...
- 【动态规划】CDOJ1271 Search gold
方格取数. 但由于题意说金币数<0就死了,就不能继续转移. #include<cstdio> #include<algorithm> #include<cstrin ...
- 【动态规划】【记忆化搜索】hdu5965 扫雷
f(i,j,k)表示第i行,放的雷的状态为j{0表示不放,1表示往上放,2表示往下放,3表示上下都放},剩余还有k(0<=k<=2)个要放的方案数. 先给出我这个sb写的错误代码,死都没调 ...
- 关于Mysort实验的补发博客
关于本次课后的一些话 关于这次课上的关于sort -nk 2 -t: sort.txt的实验没能在课上做出,有自身的知识不够,没能灵活运用所学知识,以及在当时课上走了会神,回过头来已经不知道该干些什么 ...
- Java异步编程——深入源码分析FutureTask
Java的异步编程是一项非常常用的多线程技术. 之前通过源码详细分析了ThreadPoolExecutor<你真的懂ThreadPoolExecutor线程池技术吗?看了源码你会有全新的认识&g ...
- devfs、sysfs、udev介绍
转:http://www.360doc.com/content/11/1203/09/7378000_169310928.shtml 一.devfs linux下有专门的文件系统用来对设备进行管理,d ...