高效工作、快乐生活

发布新日志

  • 如何结合qtp做单元接口测试

    2010-05-18 18:07:11

    问题:有200个接口,接口功能:向数据库里面插入数据,对这些接口进行测试。

    分析:如果每个接口有5个用例,共有5×200个用例。如果使用手工方式,工作量大,且版本回归时不好处理。
          如果用自动化方法,可以自己写代码,但是返回结构是xml的,解析起来可能比较麻烦。想到qtp里面有xml检查点,可以用qtp吗?

    步骤:
    1 qtp是测试UI的功能自动化工具,所以要有UI,用js开发一个界面,界面上显示被调用的函数单元,还有一组存放参数的文本框,还有一个控件来显示返回的xml结果。
    2 创建数据表:数据表包括字段:APIName, TCNum,para1,para2,para3,....
    3 设计用例数据,设计用例可以用正交表法得到用例数目,手工方法就不说了,如果用代码做,可以如下:解析函数原型-》分析参数类型和约束-》得到每个参数数据-》参数数据组合情况保存
    4 从数据表(可以是exl)读取数据,显示在html上的para1,para2,...
    5 把读取的参数传递到api的调用上
    6 显示xml结果
    7 xml检查点检查,使用正则表达式
    8 循环step1-step7

    总结:如果接口数目很小,可以自己搭建框架,如果接口很多,可以借助qtp的功能
    难点:如果把从数据表读出的数据传到js里面:我想的是先把testsuits data读到txt里面,然后js从txt里面批量读取,根据id再到数据表exl里面读取expect checkpoint value for xml

    欢迎交流!

     

  • 在pocket pc 2003下使用google Test(续)

    2010-05-13 11:19:03

    一片日志篇幅有限,所以下面是后半部分。

    一、Linux下使用gtest

    参考http://funcman.blog.163.com/blog/static/4208473200862925456479/

     

    二、Symbian下使用gtest

    不详,也可以使用SymbianOsUnit

    三、Android平台下单元测试

    参考http://www.51testing.com/html/87/n-129087.html

    Android本身已经自带了测试框架android.test

     

    四、Gtest原理

    http://www.cnblogs.com/coderzh/archive/2009/04/06/1426755.html

    五、Gtest结构

    gtest结构分析】

    查看:配置属性-常规-项目默认项-配置类型,可以发现:

    gtest共有4个工程,其中:

    gtest              -- 静态库(.lib)

    gtest_main     -- 静态库(.lib)

    gtest_prod_test     -- 应用程序(.exe)

    gtest_unittest -- 应用程序(.exe)

     

    gtest用到的源文件:】

    include    --     对外头文件

    test         --   有头文件和源文件

    src   -      -      有头文件和源文件

     

    [PC调试PPC]

    使用Activesync或者pocket controller和设备或者仿真器同步。设备部署和调试即可

    【参考来源:】

     本文参考官网和一些同行的blog,得到一些同事的帮助,在此感谢!

    连接版权归原作者所有,欢迎大家交流!

     

  • 在pocket pc 2003下使用google Test

    2010-05-13 11:06:02

    pocket pc 2003下使用google Test

     

    经过几天的查资料和交流,终于可以在pocket pc 2003上运行google test了。下面介绍如何在xpppc下搭建gtest

    缩略语:

    PPC         ==  pocket pc 2003

    Gtest       == google testing  framework

    Gtest介绍:

    Google's framework for writing C++ tests on a variety of platforms (Linux, Mac OS X, Windows, Cygwin, Windows CE, and Symbian).  Based on the xUnit architecture. Supports automatic test discovery,  a rich set of assertions, user-defined assertions, death tests, fatal and non-fatal failures, value- and type-parameterized tests, various options for running the tests, and XML test report generation.

    简单翻译过来是:

    Gtest支持各种平台(Linux, Mac OS X, Windows, Cygwin, Windows CE, and Symbian ),它是基于xUnit构架的。支持自动化测试。包含诊断,用户自定义的诊断,death tests,致命和非致命的失败,值和类型参数化的测试,各种测试选项,测试结果输出支持控制台和xml格式输出2种方式。

    所以总结出来就是简洁和跨平台。

    一、xp下使用gtest

    1.      下载源代码,从http://code.google.com/p/googletest/downloads/list上下载最新的测试代码

    【注:】

    1)      http://googletest.googlecode.com/svn/trunk/得到最新的源码更好,否则在ppc下编译不通过。

    2)      如果遇到问题,可以在http://code.google.com/p/googletest/issues/list上可以查看客户反映的问题

    2.      windows xp下编译win32对应的库:

    1)      vs2008打开msvc下的sln

    2)      选择平台win32,编译debuglib

    3.      在新工程下使用gtest

    1)      新建测试项目:新建一个项目TestGTestForXp

    2)      拷贝头文件和lib库:拷贝gtestincludeTestGTestForXp.vcpro的父目录,拷贝gtestd.libTestGTestForXp.vcpro的父目录的lib文件夹下(自己建)

    3)      TestGTestForXp.cpp下代码:

     

    1.    #include "stdafx.h"

    2.      #include "gtest/gtest.h"

    3.    int add(int a, int b)

    4.    {

    5.         return a+b;

    6.    }

    7.     

    8.    TEST(AddTest, TestNonNegativeNumber)

    9.    {

    10.       EXPECT_EQ(3, add(1,2));

    11.       EXPECT_EQ(115, add(1,114));

    12.  }

    13.   

    14.  int _tmain(int argc, _TCHAR* argv[])

    15.  {

    16.       testing::InitGoogleTest(&argc, argv);

    17.       RUN_ALL_TESTS();

    18.       return 0;

    19.  }

     

    4)      编译-连接-运行(直接F5),则可以看到测试效果

     

    二、WinCE下使用gtest

    WinCE下使用gtest比较麻烦,有是重点

    1.      如何在wince上显示控制台?

    因为wince是不显示控制台的,如果运行带控制台的程序,什么也看不到,所以想用gtestconsole里面输出结果,可以这样做:

    ü  下载console.dll,拷贝到windows

    ü  修改注册表HKEY_LOCAL_MACHINE\Drivers\Console0

    2.      如何编译ppcgtestlib库?

    ü  参考:http://www.mivi.name/blog/index.php?itemid=257在迁移evcproject时,
     Ignore Specific Library
    (忽略特定库) 加上 oldnames.lib
    AdditionalDependencies
    (附加依赖项)加上 commctrl.lib coredll.lib aygshell.lib secchk.lib ccrtrtti.lib

     

    ü  参考:http://blog.csdn.net/wincemobile/archive/2009/02/12/3883493.aspx

    Project --> Settings --> Link tab --> Category = Output
    -->Entry-point symbol: WinMainCRTStartup ==> mainACRTStartup
    查看(721) 评论(0) 收藏 分享 管理

xavier_007

xavier_007

目前从事gis行业导航相关测试; 熟悉语言c/cpp/vbs/lua/java 熟悉工具gtest/autoit/qtp/lr 良好英语和思维能力

数据统计

  • 访问量: 11399
  • 日志数: 18
  • 建立时间: 2008-11-26
  • 更新时间: 2012-11-21

RSS订阅

Open Toolbar