51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 2217|回复: 1
打印 上一主题 下一主题

[原创] LoadRunner 动态查询数据库(DB2)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2012-11-28 20:54:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近到新公司来,需要做一个性能测试,场景如下:模拟用户注册,考虑100个用户并发,注册有两种(手机号注册,邮箱注册),手机号注册时需要填写下发到用户手机的动态码(用户填写手机号后会将这个动态码下发到用户手机),那么就需要到数据库中去查询这个动态码再填写到脚步中。我们用的是DB2数据。
我用嵌入式C写了脚步,下面说下步骤,大家一起学习!

1、安装DB2服务。
2、写sqc脚本。到C:\IBM\SQLLIB\samples\c下,可以很到很到sqc文件,这就是db2提供带有嵌入式sql的C脚本,必须经过编译后才能转换成C程序:
*下面命令在db2cmd命令下进行
connect to databasename    //连接到数据库
prep d:\db2sqlc\test.sqc   //编译sqc文件,编译好后会在同目录下生成一个***.c文件
大家可以看看C:\IBM\SQLLIB\samples\c下面有的sqc文件,如果能满足你的需求,那就不需要自己写了。我当时是自己写的sqc脚本,具体这个sqc脚本怎么写,最好的办法就是copy一个sqc文件再把内容改下。这个不难,大家可以尝试写。

3、把c代码转换为dll文件。我是安装了VS,创建一个空项目,再在源文件中创建一个类,直接把在第一步中编译好的C代码全部复制过来。改下项目属性中的配置类型为“动态库(.dll)”,生成下,即可。在\Visual Studio 2010\Projects\aa\Debug下可找到生成的dll文件。
4、在loadrunner中引用这个dll文件
         char out_pwd[30] = {'\0'};
         char out_tid[10] = {'\0'};
         char in_phone[30] = {'\0'};
         char dbAlias[30];   //连接的数据库别名
         char user[30];      //数据库用户名
         char pswd[30];      //数据库密码
         int rc = 0;
         lr_load_dll("D:/dlldir/dlltest.dll");
       
        strcpy(dbAlias,"FMP16");
        strcpy(user,"db2inst1");
        strcpy(pswd,"db2inst1");
       

        rc = dbconn(dbAlias, user, pswd);
        strcpy(in_phone,lr_eval_string("{phoneNum}"));
        query(in_phone, out_tid, out_pwd);
        rcd = dbdisconn(dbAlias);

注:因为我在sqc文件中把查询的sql语句写的是我要查询的表而非动态,所以就不把dll文件附上去。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1
回复

使用道具 举报

  • TA的每日心情
    奋斗
    2022-5-8 19:23
  • 签到天数: 137 天

    连续签到: 1 天

    [LV.7]测试师长

    2#
    发表于 2012-11-28 22:58:18 | 只看该作者
    此帖仅作者可见

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-5-20 16:05 , Processed in 0.071497 second(s), 26 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表