今天工作中需要对mysql进行性能测试

我尝试用LR来做;但是mysql需要现在电脑上安装一个OBDC的mysql驱动器,然后在电脑的管理工具中的数据源中加入这个mysql驱动,测试连接数据库成功,OK

返回LR,我们需要用到lr_db_connect这个函数来连接数据库,这个函数只有在webservice录制中才可用。

 Action()
{

//打开连接,注意DRIVER就是上面安装的  
   // int NumRows=0;
int i=0;
    lr_db_connect("StepName=databaseConnect",
"ConnectionString=DRIVER={MySQL ODBC 5.3 ANSI Driver};SERVER=58.215.41.2;PORT=3306;DATABASE=dbo;USER=XXXXXXX;PASSWORD=XXXXXXX;OPTION=3",
"ConnectionName=mysql",
"ConnectionType=ODBC",LAST);
lr_start_transaction("SQL");
while(i<1000){

lr_db_executeSQLStatement("StepName=PerformQuery",
"ConnectionName=mysql",
"SQLStatement=SELECT * FROM himall_members",
"DatasetName=MySQL",LAST);
i++;
}//执行SQL语句
/*lr_output_message(lr_eval_string("{idParam}"));*/
lr_end_transaction("SQL", LR_AUTO);
//lr_output_message("The query returned %d rows.",NumRows);
/*lr_db_dataset_action("StepName=actionPrint",
 "DatasetName=MySQL",
 "Action=PRINT",
 LAST);*/ //对数据库执行操作
lr_db_disconnect("StepName=disconnect",
"ConnectionName=mysql",LAST);
//ConnectionName的值与lr_db_connect中的ConnectionName值要相同
//与数据库断开连接

}

但是webservice需要支持websevice的license才能运行场景。

找到了一个超级license 支持所有类型 支持65000并发

 AEACFSJI-YJKJKJJKEJIJD-BCLBR
 
连接数据库进行测试,这样的并发测试场景最好只在一台压力机上运行,否则连接数据库会出错,比如会报错说:无法连接已关闭的资源,等等。localhost
 
结果分析:平均每个用户执行一次1000次查询的脚本的耗时为11s(回放时可知),那么每秒一个用户对系统的交互次数约为100次,若要1s中系统承受5000的并发数,就需要50个并发用户去执行这个脚本。

50个用户 每个用户每次执行1000次查询,那么在压力场景中的每秒钟查询次数就约为5000次(11/50*1000=1/5000),平均每次查询的响应时间是0.41s,

那么就是在5000的并发数的压力下集群数据库对读操作的响应时间为0.41s。

主要用于对集群后数据库性能优化的验证。当然其中的sql语句最好是基于常用业务的,这样结果更有用。

 
 
 
 

LR 测试数据库总结的更多相关文章

  1. windows 测试数据库的连接状况-udl方法

    udl是windows系统上,用于测试数据库的连接状态的测试软件. 使用方法: 1.建立一个空白文本 2.将文件的后缀名更改为*.udl 即可     文件内容一定为空 3.选择windows的“提供 ...

  2. 共享参数ContentProvider 类与数据库绑定,如何通过共享参数测试类,测试数据库的增删改查功能

    Intent可以传一个对象 当两个界面之间跳转时,需要传递一个对象过去,是通过使用Bundle类,并且实体类需要serializable实现序列化,传递方法如下: 定义一个静态常量作为key值 pub ...

  3. 第三篇--Jmeter测试数据库Mysql

    Jmeter模拟100用户访问Mysql数据库 1.将Mysql数据库的驱动[mysql-connector-java-5.1.15-bin.jar]放到jmeter的lib目录下,新建线程组100[ ...

  4. Windows MySQL测试数据库employees的导入

    一: 首先下载employees测试数据库 https://launchpad.net/test-db/ 二:用文本编辑器打开其中的employees.sql文件,将第38行的set storage_ ...

  5. python+Django+test 测试数据库生成报错

    前提: 使用Django自带的test进行单元测试. 问题描述: 运行:python manage.py test,报错,出现数据库乱码的现象,报错如下: Creating test database ...

  6. LR 测试http协议xml格式数据接口

    Action() { lr_start_transaction("T1"); web_custom_request("xxxxHTTPRequest", &qu ...

  7. 装服务器,测试数据库,简单的maven命令

    [说明]今天总体回顾一下:大概是早上装服务器,下午测试数据库,晚上了解简单的maven命令 一:今日完成 1)在远程服务器的tomcat 设置好管理员的登录账号 2)登录tomcat 的项目管理 查看 ...

  8. 导入MySQL测试数据库employee报错

    导入MySQL测试数据库employee 报错 下载地址:https://launchpad.net/test-db/ 上传解压: [root@001 ~]# tar xf employees_db- ...

  9. 记一次使用LR测试UDP和TCP的过程

    背景 最近项目要做性能测试,要出要一份性能报告,让我出一个有关Tcp和Udp的功能模块的测试,流程大概是这样,先走TCP协议协商一下会话,协商成功后走Udp收发数据. 有点简单啊,自己写个功能模块测一 ...

随机推荐

  1. 数据库防火墙如何防范SQL注入行为

    SQL注入是当前针对数据库安全进行外部攻击的一种常见手段.现有主流应用大多基于B/S架构开发,SQL注入的攻击方式正是利用web层和通讯层的缺陷对数据库进行外部恶意攻击.将SQL命令巧妙的插入通讯的交 ...

  2. 云计算之路-阿里云上:遭遇CDN问题

    7月10日11:14接到一位用户反馈,访问园子时加载不了 common.cnblogs.com/script/jquery.js 这个文件. 由于这个域名用了阿里云CDN,所以我们判断可能是某个CDN ...

  3. Java server数据之(4):Redis鸟瞰

    Redis简介 Redis是NoSQL数据库中的一种,属于key-value键值对这一个子类别. 它常被称作是一款数据结构服务器(data structure server). Redis中的数据结构 ...

  4. WCF 入门(29)

    前言 最近工作比较忙,加了会班就不想再写东西了,就想洗洗睡. 但是这个视频真的不能断,不能像过去一样写了几集就停了. 现在公司在做一个MVC框架的项目,话说已经一年没有写MVC了,重新上手的感觉还可以 ...

  5. IOS 计算两个经纬度之间的距离

    IOS 计算两个经纬度之间的距离 一 丶 -(double)distanceBetweenOrderBy:(double) lat1 :(double) lat2 :(double) lng1 :(d ...

  6. UITableViewdataSourse的协议所有方法

    UITableViewDataSource @required- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection ...

  7. session,cookie

    Session 和cookie的学习 cookie cookie的建立 setcookie(name,value); setcookie(name,value,expiration,path,host ...

  8. ncdu 磁盘目录查看工具

    我平时都是直接yum -y install ncdu,但是今天失败了. 所以: 安装EPEL源 CentOS/RHEL 5 : rpm -Uvh https://dl.fedoraproject.or ...

  9. HTML5开发注意事项及BUG解决

    1.点透Q:元素A上定位另外一个元素B,点击元素B,如果元素A有事件或链接,会触发元素A上的事件或链接,即点透A:在元素B的touchend中增加ev.preventDefault();阻止默认事件即 ...

  10. yield实例

    如下 # __author__ = liukun # coding:utf-8 def it(): print ('hello') yield 1 yield 1 a= it() print(&quo ...