一、连接Mysql数据库
(1)准备工作:
下载MySQL_LoadRunner_libraries.zip,将bin、include文件夹中的文件,放到LoadRunner安装目录下的bin、include文件夹下:
(2)打开LoadRunner,点击“创建/编辑脚本”,新建个Web(HTTP/HTML)协议脚本,输入请求的URL->选择工作目录->取消勾选“录制应用程序启动”->点击“确定”->弹出的提示框中,点击“中止”
(3)如下图,点击vuser_int,定义数据库访问的信息:
代码如下,将相应的数据库信息替换成自己的数据库信息:
#include "Ptt_Mysql.h"
vuser_init()
{
lr_load_dll("libmysql.dll");
#define MYSQLSERVER "192.168.1.101";//数据库地址
#define MYSQLUSERNAME "root";//数据库登录名
#define MYSQLPASSWORD "123456";//数据库登录密码
#define MYSQLLDB "test";//数据库名
#define MYSQLPORT "3306";//端口号
}
二、编写脚本
(1)Action中,新建“提交数据”类型的请求,并填入相应的信息:
注:这里因为报文请求的格式是:http://192.168.1.101/test/external?content={xxxxxx……},所以选择“提交数据”的类型来提交。
下图,“值”里的请求报文,如果有双引号",则需要进行转义才能正常识别,这里推荐个在线转义的地址https://www.json.cn/json/jsonzip.html,比较方便(复制报文后,点击“压缩”->“转义”->“复制”,再粘贴上去就好了)
点击“确定”后,显示如下:
三、参数化SQL查询语句
//定义一个字符数组存储查询的sql语句
char sqQuery[250];
//mysql连接字符串
MYSQL *Mconn;
//创建连接
Mconn = lr_mysql_connect(MYSQLSERVER, MYSQLUSERNAME, MYSQLPASSWORD, MYSQLDB, atoi(MYSQLPORT));
//查询orderId,lr_eval_string("{OrderId}")中的OrderId替换为参数从文件中读取数据
sprintf(sqQuery, "select keyId from table_name where orderId='%s' order by createTime desc limit 0,1;",lr_eval_string("{OrderId}"));
//执行sql语句(lr_mysql_query函数可执行任何sql语句)
lr_mysql_query(Mconn,sqQuery);
//#执行select操作返回的数据存储在一个多维数组row[x][y].cell,这里的行和列是颠倒的,x表示列(第一列是0),y表示行(第一行是0)
lr_save_string(row[0][0].cell, "keyId ");
……
//断开数据库连接
lr_mysql_disconnect(Mconn);
后面报文中引用查询结果的方式:{keyId }