LoadRunner测试mysql性能实践。。。
最近公司突然换了mysql数据,并将mysql性能测试问题交给了我,本人以前也没有接触过mysql和LoadRunner,都是摸着石头过河。经过一段时间探索现将一些心得记录如下,请高手指点不足之处。(下面说的都是在windows环境下)测试mysql性能就是观察一些global status信息以及所在系统的性能表现(吼吼我现在这么认为的,请高手指点),所以根据网上前辈的一些经验,找到了下面两种方法:
方法一:使用工具SpotlightonMySQL,关于这个工具网上的资料只有手册,我还在学习。到官网上下载最新的版本,不然会提示ODBC连接失败。
方法二:使用LoadRunner,可以利用sitescope,也可以自己写脚本。关于使用sitescope就不多说了,网上都有说明。主要说一下自定义脚本,首先编译dll文件,设置vs2005编译环境,将my_alloc.h、my_list.h、mysql.h、mysql_com.h、mysql_time.h、mysql_version.h拷贝到工程目录下,工程中添加libmysql.lib。
dll中原程序:
。。。。。。
extern "C" int _declspec(dllexport) get_mysql_query_data(char *str_query,char *str_data)
{
unsigned long u1_numrow=0;
unsigned int i_index = 0;
p_res_ptr=mysql_use_result(conn);
if(p_res_ptr){
while((sqlrows=mysql_fetch_row(p_res_ptr))){
if(*sqlrows=*str_query) //此处不能直接判断两个字符串相等,可用if(!strcmp(sqlrows,str_query))
{
strcpy(str_data,sqlrows);
}
}
}
return NULL;
}
。。。。。。
编译时可能还会提示一个什么错误,上网查一下原因即可。
LoadRunner中代码:
。。。。。。
for(;;)
{
get_mysql_query_data("Qcache_hits",str_data);
i=get_mysql_table_query("show status like \'qcache%\'"); //应该和上面一条语句颠倒了
lr_output_message("%d",i);
x = atof(str_data); //不知道为什么在我的LoadRunner里转换的数不对,要用atol才行
lr_user_data_point("hits",x);
lr_think_time(5);
}
。。。。。。
dll编译之后,在LoadRunner里调用即可得到Qcache_hits的值。
同样道理可以添加任何你想要看的status值。
有个疑问请高手解答一下:监测mysql的status参数时候,选择什么样的频率,观察多长时间合适? 学习!!!!!!
回复 1# 的帖子
测数据库用LR不够专业,相关测试指标也很少;建议用第一种方法; 学习了 mysql自已带有性能测试工具的啊 关注中…… 营养贴,可很老了。我也正在做MYSQL方面的测试。
页:
[1]