老李分享:loadrunner操作mysql数据库
老李分享:loadrunner操作mysql数据库
在poptest测试开发工程师就业培训的课程中,针对一套商业系统进行性能测试,目标是mysql后台数据库的负载能力,在这里我把测试代码进行了简化,主要是循环单插入数据100次,只是针对单表进行插入,在课堂上我们构造了复杂的应用测试场景,后台表涉及到多表,通过频繁插入操作查看负载情况。db2的数据库操作大家可以看前面的文章。
测试开发工程师没有那么难,关键是训练,poptest是唯一一家在做测试开发工程师培训的机构,在不断的摸索更加有效的培训方式。
#define MAX 100
Action()
{
int i,rc,fp;
int db_connection; // 数据库连接
int query_result; // 查询结果集 MYSQL_RES
char** result_row; // 查询的数据
char *server = "127.0.0.1";
char *user = "laoli";
char *password = "0123456";
char *database = "testing";
int port = 3306;
int unix_socket = NULL;
int flags = 0;
long t;
time(&t);
rc = lr_load_dll("c:\\Program Files\\APMServ5.2.6\\MySQL5\\lib\\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();
}
// 打开文件资源(初始化)
fp=fopen("d:\\Test\\VirtualAccount\\CreateVirtualData.txt","at");
if(fp == NULL){
lr_log_message("Error !");
//fprintf(stderr,"fopen failed!%s\n",strerror(errno));
fclose(fp);
lr_abort();
}
// 其中 crtime必须为当日日期 pay_id每条记录不能重复。number为商品ID,money为本次入账金额。
for(i=0;i<=MAX;i++)
{
// lr_output_message("Count: %d ",i);
lr_save_string (lr_eval_string("insert into tudou_money (`user`,`name`, `time`, `num`) "
"VALUES ('010','{name}', '2015-08-17 08:11:10', '1')"),"InsertQuery");
rc = mysql_query(db_connection, lr_eval_string("{InsertQuery}"));
lr_output_message("--------Current SQL is :%s",lr_eval_string("{InsertQuery}"));
//写文件操作
fprintf(fp,"CurrnetTime is:%s Counts:%d ---Current SQL is :%s\n",ctime(&t),i,lr_eval_string("{paramInsertQuery}"));
//对执行语句的结果判断,当出错时输出错误到指定文件中并关闭资源终止脚本执行。
if (rc != NULL) {
fprintf(fp,"CurrnetTime is:%s Counts:%d ---Error SQL is :%s\n",ctime(&t),i,lr_eval_string("{paramInsertQuery}"));
mysql_close(db_connection);
fclose(fp);
lr_abort();
}
}
if (rc != 0) {
lr_error_message("%s", mysql_error(db_connection));
mysql_close(db_connection);
lr_abort();
}
/*
// 从数据库读取当前插入的数据并显示
lr_save_string (lr_eval_string("select * from test_users where user_id='1'"),"SelectQuery");
rc = mysql_query(db_connection, lr_eval_string("{SelectQuery}"));
lr_output_message("--------Current SQL is :%s",lr_eval_string("{SelectQuery}"));
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();
}
*/
// 释放MySQL与文件资源
mysql_close(db_connection);
fclose(fp);
return 0;
}
整个代码核心思路就是打开连接,操作数据库(操作n次,形态多样),关闭连接,
poptest测试开发工程师,性能测试咨询群:450192312
老李分享:loadrunner操作mysql数据库的更多相关文章
- Python操作MySQL数据库9个实用实例
用python连接mysql的时候,需要用的安装版本,源码版本容易有错误提示.下边是打包了32与64版本. MySQL-python-1.2.3.win32-py2.7.exe MySQL-pytho ...
- PHP操作MySQL数据库5个步骤
PHP操作MySQL数据库一般可分为5个步骤:1.连接MySQL数据库服务器:2.选择数据库:3.执行SQL语句:4.关闭结果集:5断开与MySQL数据库服务器连接. 1.用mysql_connect ...
- python操作mysql数据库的相关操作实例
python操作mysql数据库的相关操作实例 # -*- coding: utf-8 -*- #python operate mysql database import MySQLdb #数据库名称 ...
- 转 用C API 操作MySQL数据库
用C API 操作MySQL数据库 参考MYSQL的帮助文档整理 这里归纳了C API可使用的函数,并在下一节详细介绍了它们.请参见25.2.3节,“C API函数描述”. 函数 描述 mysql_a ...
- PHP操作mysql数据库:[2]查询数据听语音
本文主要详细讲解如何使用php语言,对mysql数据库进行查询.添加.删除.更新等操作. 工具/原料 Macromedia Dreamweaver 8 mysql数据库,php语言 一.前言 ...
- Code First操作Mysql数据库
前面博客也讲了,自己做一个网站,选用的是MVC+EF Code First+MySql+EasyUI,先说下技术选型.一.为什么选择MVC? 因为之前自己做的系统大部分是webForm,MVC的之前也 ...
- JDBC操作MySQL数据库案例
JDBC操作MySQL数据库案例 import java.sql.Connection; import java.sql.DriverManager; import java.sql.Prepared ...
- shell脚本操作mysql数据库
shell脚本操作mysql数据库,使用mysql的-e参数可以执行各种sql的(创建,删除,增,删,改.查)等各种操作 mysql -hhostname -Pport -uusername -pp ...
- Java使用Jdbc操作MySql数据库(一)
这个示例是Java操作MySql的基本方法. 在这个示例之前,要安装好MySql,并且配置好账户密码,创建一个logininfo数据库,在数据库中创建userinfo数据表.并且在表中添加示例数据. ...
随机推荐
- PowerPoint超链接字体颜色修改、怎么去掉超链接下划线
经常在做PPT幻灯片时会遇到这样一个问题,给文字加超链接后发现链接的颜色是蓝色的,而且还带有下划线,这种效果与主题的色彩搭配简直是太影响美观效果了.有没有什么办法可以去掉PPT中的超链接下划线?再将超 ...
- [Hadoop] - Hadoop3.0.x编译
这里仅介绍一种Hadoop3.0.x版本的源码编译方式 编译过程 1. 下载源码 2. 安装依赖环境 3. 源码编译 ========================================= ...
- 每天一个Linux命令(22)--find命令详解
find 一些常用参数的一些常用实例和一些具体用法和注意事项. 1.使用 name 选项: 文件名选项是 find 命令最常用的选项,要么单独使用该选项,要么和其他选项一起使用. 可以使用某种文件名模 ...
- centOS7 mini配置linux服务器(二) 配置IP
1.登录root用户,输入指令 #ip addr 可以看到除lo外的属于你的网卡配置. 2.输入 #cd /etc/sysconfig/network-scripts/ #vi if ...
- Java程序员入门:程序员究竟可以干多少年?
很多人都说程序员是青春饭,只能干到30岁. 然而事实真的如此么? 今天我们来探讨一下这个老话题,看看为了技术与编程执着究竟能走多远? 01年龄分布图 先来看一下程序员的年龄分布图: 我们可以看到程序员 ...
- 微信公众平台跳转网页url详解
1.利用Tomcat服务器部署项目,本地访问可以获取路径资源 2.开辟外网映射,实现全网访问 利用nat123端口映射工具 全网访问 3.将所获取的域名和端口设置到微信页面跳转的url,就完成了该项功 ...
- [lua] mac上如何编译snapshot(检测Lua中的内存泄露)
最近我们的unity手游频繁闪退,只要进入战斗场景,之后一段时间就会闪退,如果是在unity编辑器中则会报出not enough memory的错误!猜测应该是有内存泄漏: 由于我们使用了tolua, ...
- Dell M102ZD-128 —— 拿XP拯救你
查过新浪博客上的记录: http://blog.sina.com.cn/s/articlelist_1259160330_7_1.html 2011年6月买了这台 Dell Inspiron M102 ...
- Linux命令语句秘籍
系统管理命令 stat 显示指定文件的详细信息,比ls更详细 who 显示在线登陆用户 whoami 显示当前操作用户 host ...
- 一段获取app性能指标的py脚本
#coding:utf-8 import os import timeimport datetimeimport subprocess ActivityManager = 'homepage.Main ...