`

C++单元测试、压力测试、快速测试工具

 
阅读更多
由于项目中一直要进行单元测试,适合C++的单元测试工具屈指可数,所以自己学习Ununit写了一个单元测试工具,这个工具同时具有压力测试、快速测试的功能,欢迎大家试用,有什么问题可以反馈给我我一一修复,后期考虑开源,谢谢!


引用

设计思路:
利用某一个EXE去加载n个DLL,exe采用的是动态加载,用户把AP的名称定义在config文件中去,这样可以动态价格全部API。
所以API的接口必须保持一致,不然无法加载test case.


API 接口设计如下:

引用

DWORD TestCase_01(BYTE* pByInBuffer,
DWORD dwInSize,
BYTE* pByOutBuffer,
DWORD* pdwOutSize);

Return: 返回的是Error Code
Input: 传给API的特殊数据
Output:这是是返回的用户的需要输出的String buffer;最大支持4KB;





引用

Config File Definition:
引用

[TestCase]
0001=CaseName_0001
.
.
.
9999=CaseName_9999

[SmokeTest]
0001=CaseName_0001
.
.
.
0002=CaseName_00XX


[StressTest]
0001= CaseName_0001 ;The test case run as stress test modek
CaseName_0001=99 ;Try to run several times
.
.
.
XXXX= CaseName_XXXX
CaseName_XXXX=10



TestCase: Means all test cases
SmokeTest:Meas all quick test case
StressTest: Means all stress test cases





DLL编写示范


/*************************************************************************************************/
/*!
    \file TestCase02.h

    \attention
        Copyright (c) 2016  Jacky_Dai.
        All Rights Reserved.
*/
/*************************************************************************************************/
#ifndef TESTCASE_02_H
#define TESTCASE_02_H

/*** Defines/Macros/Constants/Typedefs ***********************************************************/
#ifdef TESTSTDDLL2_EXPORTS
#define TESTCASE_API __declspec(dllexport)
#else
#define TESTCASE_API __declspec(dllimport)
#endif

//Include Head files
//////////////////////////////////////////////////////////////////////////
#include <Windows.h>



#ifdef __cplusplus
extern "C"
{
#endif


TESTCASE_API DWORD TestCase2_01(BYTE* pByInBuffer,
                               DWORD dwInSize,
                               BYTE* pByOutBuffer,
                               DWORD* pdwOutSize);

TESTCASE_API DWORD TestCase2_05(BYTE* pByInBuffer,
                                DWORD dwInSize,
                                BYTE* pByOutBuffer,
                                DWORD* pdwOutSize);

TESTCASE_API DWORD TestCase2_07(BYTE* pByInBuffer,
                                DWORD dwInSize,
                                BYTE* pByOutBuffer,
                                DWORD* pdwOutSize);

TESTCASE_API DWORD TestCase2_08(BYTE* pByInBuffer,
                                DWORD dwInSize,
                                BYTE* pByOutBuffer,
                                DWORD* pdwOutSize);

TESTCASE_API DWORD TestCase2_XX(BYTE* pByInBuffer,
                                DWORD dwInSize,
                                BYTE* pByOutBuffer,
                                DWORD* pdwOutSize);

#ifdef __cplusplus
}
#endif

#endif//TESTCASE_02_H





#include "TestCase02.h"

DWORD TestCase2_01(BYTE* pByInBuffer,
                   DWORD dwInSize,
                   BYTE* pByOutBuffer,
                   DWORD* pdwOutSize)
{
    if (pdwOutSize != NULL)
    {
        *pdwOutSize = 0;
    }

    return 0x0201;
}


DWORD TestCase2_05(BYTE* pByInBuffer,
                   DWORD dwInSize,
                   BYTE* pByOutBuffer,
                   DWORD* pdwOutSize)
{
    if (pdwOutSize != NULL)
    {
        *pdwOutSize = 0;
    }

    Sleep(500);
    return 0x0205;
}

DWORD TestCase2_07(BYTE* pByInBuffer,
                   DWORD dwInSize,
                   BYTE* pByOutBuffer,
                   DWORD* pdwOutSize)
{
    if (pdwOutSize != NULL)
    {
        *pdwOutSize = 0;
    }

    Sleep(500);
    return 0x0207;
}

DWORD TestCase2_08(BYTE* pByInBuffer,
                   DWORD dwInSize,
                   BYTE* pByOutBuffer,
                   DWORD* pdwOutSize)
{
    if (pdwOutSize != NULL)
    {
        *pdwOutSize = 0;
    }

    return 0x0208;
}

DWORD TestCase2_XX(BYTE* pByInBuffer,
                   DWORD dwInSize,
                   BYTE* pByOutBuffer,
                   DWORD* pdwOutSize)
{
    if (pdwOutSize != NULL)
    {
        *pdwOutSize = 0;
    }

    Sleep(500);
    return 0x0000;
}

分享到:
评论

相关推荐

    C++ 编写的TcpServer压力测试工具源代码

    C++ 编写的TcpServer压力测试工具源代码 C++ 编写的TcpServer压力测试工具源代码

    StressMark压力测试软件

    StressMark测试软件是一个使用Visual C++编写的,开放源代码的测试工具,可以完成服务程序及重要算法的功能和性能测试,其最主要的功能是模拟多线程或多客户端的自动化压力测试。 我们可以利用StressMark软件完成的...

    websocket客户端测试工具

    自己用c++写的websocket客户端测试工具(服务端和压力测试工具还没写),主要用来测试websocket服务端程序

    分布式TCP压力测试工具 tcpcopy

    1)分布式压力测试工具,利用在线数据,可以测试系统能够承受的压力大小(远比ab压力测试工具真实地多),也可以提前发现一些bug 2)普通上线测试,可以发现新系统是否稳定,提前发现上线过程中会出现的诸多问题,让...

    httperf压力测试工具

    一个好用的压力测试工具,惠普公司出品,在linux下好用

    StressMark压力测试程序.zip_StressMark_压力测试_性能测试_服务程序_测试工具

    简介 StressMark测试软件是一个使用Visual C++编写的,开放源代码的测试工具,可以完成服务程序及重要算法的功能和性能测试,其最主要的功能是模拟多线程或多客户端的自动化压力测试。 我们可以利用StressMark软件...

    多线压力测试工具StressMark

    StressMark测试软件是一个使用Visual C++编写的,开放源代码的测试工具,可以完成服务程序及重要算法的功能和性能测试,其最主要的功能是模拟多线程或多客户端的自动化压力测试。 我们可以利用StressMark软件完成的...

    StressMark压力测试程序.rar_测试工具

    StressMark测试软件是一个使用Visual C++编写的,开放源代码的测试工具,可以完成服务程序及重要算法的功能和性能测试,其最主要的功能是模拟多线程或多客户端的自动化压力测试。

    StressMark压力测试程序

    简介 StressMark测试软件是一个使用Visual C++编写的,开放源代码的测试工具,可以完成服务程序及重要算法的功能和性能测试,其最主要的功能是模拟多线程或多客户端的自动化压力测试。 我们可以利用StressMark软件...

    服务器压力测试工具(TcpServer Test Tool)

    1、可以设定间隔时间发起大规模长、短连接 2、可以发起密集数据包,包括即时和定时发送 3、数据发送工作由一个独立线程担当,连接发起工作可设置多个独立的线程担当。 4、可以多种模式组合连接或发送数据。

    jt808client:jt808客户端测试工具

    jt808客户端测试程序,支持模拟多个终端,压力测试。 实现协议 实现协议 时间 位置信息汇报 2020-7-7 鉴权 2020-7-7 注册 2020-7-7 运行效果 运行方式 导入源码,编译运行即可,测试页面地址

    dhcp_test_tool:DHCP服务器测试工具

    dhcp_test_tool介绍MFC的DHCP服务器测试工具可用于测试 DHCP 服务器的性能。闲话其实我是一名 Linux 程序员 :) 我很久以前作为一名新开发人员完成了这个,所以它非常简单,但有点有用。 它诞生于 2007 年,据我所知...

    stressapptest:压力应用程序测试-用户空间内存和IO测试

    压力测试 压力应用测试(或Stressapptest,其Unix名称)是一种内存接口测试。 它试图最大化从处理器和I / O到内存的随机流量,目的是创建实际的高负载情况,以便测试计算机中的现有硬件设备。 它已经在Google使用了...

    badboy中文手册

    Badboy也是一个强大的测试工具,是用C++开发的,被设计用于测试和开发复杂的动态应用。Badboy功能丰富(包括一个捕获/重播接口,强大的压力测试支持,详细的报告、图形)使得测试和开发更加容易。 官方网址:...

Global site tag (gtag.js) - Google Analytics