如何利用loadrunner做mysql压力测试
推荐回答
http函数下的loadrunner编程。globals.h#ifndef _GLOBALS_H#define _GLOBALS_H#include "lrun.h"#include "web_api.h"#include "lrw_custom_body.h"#include "modal_dialog_callbacks.h"#define random(x) (rand()%x)#include#include#include#include#include#include#include#endif // _GLOBALS_Hvuser_init.cMYSQL *db;MYSQL_ROW record;vuser_init(){char sql[128];MYSQL_RES *results1;lr_load_dll("libmysql.dll");db = mysql_init(NULL);mysql_real_connect(db, "192.168.8.32", "root", "123456", "sunboyu_test", 3311, "/tmp/mysql3311.sock", 1);sprintf(sql, "show tables");mysql_query(db, sql);results1 = mysql_store_result(db);while((record = mysql_fetch_row(results1))){lr_log_message("table = %s", record[0]);}mysql_free_result(results1);return 0;}vuser_end.cvuser_end(){mysql_close(db);mysql_server_end();return 0;}Action.cAction(){int r1 = 0;char sql[128];r1 = random(11); //10种用户,8种正常访问,两种在挖坟lr_log_message(" %d", r1);if(r1==11){my_mysql_insert();}else{my_mysql_query( r1 );}return 0;}int my_mysql_query( int randid ){int r2 = 0;int j = 0;int count = 0;int page = 0;char sql[128];MYSQL_RES *results2;if(randid<2) //老数据,小部分 20%{r2 = random(700000);sprintf(sql, "SELECT COUNT(*) AS count FROM posts_jx3 WHERE tid = %d;",r2);lr_log_message("%s",sql);mysql_query(db, sql);results2 = mysql_store_result(db);while((record = mysql_fetch_row(results2))){lr_log_message("count = %d", record[0]);}mysql_free_result(results2);page = count/10;lr_log_message("page = %d", page);for(j=0;j< =page;j++){sprintf(sql, "SELECT * FROM posts_jx3 WHERE tid = %d LIMIT %d,10;",r2,j);mysql_query(db, sql);lr_log_message("%s", sql);if (j>0) {results2 = mysql_store_result(db);while((record = mysql_fetch_row(results2)))