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 = ""; // 密码
char *database = "t3db"; // 数据库名称
int port = ; // 访问端口
int unix_socket = NULL;
int flags = ;
char** result_row;
int query_result;
char szSql[]; 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!=)
{
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 ;
} int InsertValue(char* query)
{
rc = mysql_query(db_connection,query);
if (rc != )
{
lr_error_message("%s", mysql_error(db_connection));
} query = NULL;
return rc;
} int MySqlQuery(char* szSql)
{
rc = mysql_query(db_connection,szSql); if(rc != )
{
lr_error_message("%s",lr_eval_string("?"));
lr_error_message("%s", mysql_error(db_connection));
szSql = NULL;
return -;
} 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 -;
} 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 -;
} mysql_free_result(query_result);
szSql = NULL;
return ;
}
这里提供了几个公共函数,看名字大家都明白他们是干啥的。
Step3:Loadrunner里需要怎么编写写呢?
1、添加libmysql.dll到你的工程
2、把公共库添加到你的公共
3、vuser_init
vuser_init()
{
index = ;
MySqlInit(); // 初始化数据库
return ;
}
4、vuser_end
vuser_end()
{
MySqlUnit(); // 反初始化
return ;
}
5、Action
Action()
{
int resultValue;
char cIndex[];
char onceAccount[];
char insertQuery[]; index = index +; // 组合插入数据库的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, ));
strcat(insertQuery, "', 'q1031', '111', '111','2013-02-28 20:42:33')");
strcat(insertQuery, ";\0"); lr_start_transaction("Insert");
resultValue = InsertValue(insertQuery); // 调用插入函数 if(resultValue != )
{
lr_end_transaction("Insert",LR_FAIL);
}
else
{
lr_end_transaction("Insert",LR_PASS);
} sleep();
return ;
}
整个过程就是如此了……
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.前期 ...
随机推荐
- 8-07CONTIUE 、 BREAK、RETURN
CONTIUE: 可以让程序跳过CONTIUE关键字之后的语句,回到WHILE循环的第一行命令. BREAK:让程序跳出循环,结束WHILE的循环. BREAK: 让系统完全跳出循环,结束WHILE循 ...
- 常用CSS居中
1.flex方法: .center_fix { display:flex; align-items:center; justify-content: center; } 具体flex方法教程:可以参见 ...
- hdu 2489(枚举 + 最小生成树)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2489 思路:由于N, M的范围比较少,直接枚举所有的可能情况,然后求MST判断即可. #include ...
- 【CentOS】又是一篇Shell
一.Shell 1.Shell脚本的格式 #!/bin/bash 或者是 #!/bin/sh 开头 ,这是用于解析脚本的工具 2.执行脚本的方法 (1)bash filename 或者是sh file ...
- 【CentOS】压缩打包
一.gzip [-d][-1-9][filename] -d 解压 -[1-9] 压缩等级(默认为6) zcat filename.gz 查看压缩文件 最小化安装centOS是没有安装bzip2的 ...
- 分布式缓存技术redis学习系列(四)——redis高级应用(集群搭建、集群分区原理、集群操作)
本文是redis学习系列的第四篇,前面我们学习了redis的数据结构和一些高级特性,点击下面链接可回看 <详细讲解redis数据结构(内存模型)以及常用命令> <redis高级应用( ...
- windows 2008 server NTP Server
1. 选择一台服务器作为时间同步服务器. 2. 运行Regedit,打开注册表编辑器. 3. 找到注册表项HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Ser ...
- 手动编译安装docker环境,以及偶尔出现的bug
总结安装过程如下: 前提:安装git,go,make, docker(docker中编译docker) git clone https://git@github.com/docker/docker c ...
- NSDateFormatter 相关理解
Formatter译为格式,相应的NSDateFormatter就相当于是NSDate的转换类,将NSDate转换为另一种格式,或转换回来.NSDate没有自己的输出,需要借助NSDateFormat ...
- mysql数据库安装及使用
前言:本文为在ubuntu系统下使用mysql数据库,mysql 版本为:Ver 14.14 Distrib 5.5.43 (mysql版本可在命令行中输入mysql --version显示) 一.m ...