zoukankan      html  css  js  c++  java
  • 【转】LoadRunner使用Libmemcached与Memcached通讯

        在一包含业务的大数据量测试过程中,需要使用快速、大容量的数据库。

        可考虑的有关系型数据库或键值缓存数据库,建立集群。 LoadRunner操作Mysql实例:C语言篇已完成。

        今日来尝试在LoadRunner里操作Memcached,使用Libmemcached。

        首先下载源码:‍http://svn.coderepos.org/share/lang/c/libmemcached-win32

          然后按照说明进行编译,源码里还有测试代码和示例代码。编译方法有三种:

            一、使用‍mingw32进行编译,打开‍ Visual Studio Command Prompt:

        ‍    cd libmemcached-latest\libmemcached
        ‍    mingw32-make -f Makefile.w32

        ‍    cd ..\cilents
        ‍    mingw32-make -f Makefile.w32

        ‍    cd ..\..\example
        ‍    mingw32-make -f Makefile.w32

        二、使用Visual Studio 2005或更高版本执行编译:
        ‍    libmemcached-latest\visualc\libmemcached.sln
        三、使用nmake进行编译,‍打开‍ Visual Studio Command Prompt:
        ‍    cd libmemcached-latest\libmemcached
        ‍    nmake -f Makefile.msc

    ‍‍    ‍    cd ..\cilents
        ‍    nmake -f Makefile.msc

        ‍    cd ..\..\example
    ‍‍    ‍    nmake -f Makefile.msc
        编译过程将生成memcached.dll,供LoadRunner扩展调用。如下图:

    源码:

    #define SERVER_NAME "192.168.223.106"
    #define SERVER_PORT 11211
    Action(){ //先加载libmemcached.dll
        int memc;
        int rc;
        int value_length=0;
        intf lags=0;
        int result;
        long int num;
        charkey="name";
        char* value="higkoo";
        chardiscription="Performance";

        memc=memcached_create(NULL);
        rc=memcached_server_add(memc,SERVER_NAME,SERVER_PORT);
        lr_output_message("server add: %s\n",memcached_strerror(memc,rc));

         rc=memcached_set(memc,key,strlen(key),value,strlen(value),0,0);
         lr_output_message("set '%s' to '%s': %s\n",key,value,memcached_strerror(memc,rc));

        result=memcached_get(memc,key,strlen(key),&value_length,&flags,&rc);
        lr_output_message("get '%s': %s\n",key,memcached_strerror(memc,rc));
        lr_output_message("%s = %s\n",key,result);

        rc=memcached_behavior_set(memc,0,1);
        lr_output_message("behavior set to non-block: %s\n",memcached_strerror(memc,rc));

        result=memcached_get(memc,key,strlen(key),&value_length,&flags,&rc);
        lr_output_message("get '%s': %s\n",key,memcached_strerror(memc,rc));
        lr_output_message("%s = %s\n",key,value);

        rc=memcached_set(memc,key,strlen(key),discription,strlen(discription),0,0);
        lr_output_message("set '%s' to '%s': %s\n",key,discription,memcached_strerror(memc,rc));

        rc=memcached_increment(memc,key,strlen(key),1,&num);
        lr_output_message("incr '%s': %s\n",key,memcached_strerror(memc,rc));
        rc=memcached_increment(memc,key,strlen(key),1,&num);
        lr_output_message("incr '%s': %s\n",key,memcached_strerror(memc,rc));
        rc=memcached_increment(memc,key,strlen(key),1,&num);
        lr_output_message("incr '%s': %s\n",key,memcached_strerror(memc,rc));
        rc=memcached_decrement(memc,key,strlen(key),1,&num);
        lr_output_message("decr '%s': %s\n",key,memcached_strerror(memc,rc));

        result=memcached_get(memc,key,strlen(key),&value_length,&flags,&rc);
        lr_output_message("get '%s': %s\n",key,memcached_strerror(memc,rc));
        lr_output_message("test = %s\n",value);

        rc=memcached_delete(memc,key,strlen(key),0);
        lr_output_message("delete '%s': %s\n",key,memcached_strerror(memc,rc));

        result=memcached_get(memc,key,strlen(key),&value_length,&flags,&rc);
        lr_output_message("get(was deleted) '%s': %s\n",key,memcached_strerror(memc,rc));

        memcached_free(memc);
    }

    ...

  • 相关阅读:
    MSSQL大量数据时,建立索引或添加字段后保存更改超时该这么办
    POJ 3261 Milk Patterns (后缀数组)
    POJ 1743 Musical Theme (后缀数组)
    HDU 1496 Equations (HASH)
    694. Distinct Substrings (后缀数组)
    POJ 1222 EXTENDED LIGHTS OUT (枚举 或者 高斯消元)
    POJ 1681· Painter's Problem (位压缩 或 高斯消元)
    POJ 1054 The Troublesome Frog (hash散列)
    HDU 1716 排列2
    HDU 4405 Aeroplane chess (概率DP & 期望)
  • 原文地址:https://www.cnblogs.com/mike442144/p/2036841.html
Copyright © 2011-2022 走看看