`

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++编写的TCP服务器压力测试工具的源代码,这对于理解和优化网络服务的性能至关重要。C++是一种强大的编程语言,常用于构建高性能的应用程序,尤其是涉及到系统级编程和网络通信时。 TCP(传输...

    C++单元测试培训资料

    此外,培训资料还分析了C++程序常见问题,并介绍了一些专门用于C++的单元测试和性能测试工具。比如,使用CPPUnit进行单元测试,利用Purify进行内存测试,运用Quantify进行性能测试,以及使用PureCoverage进行代码...

    基于qt+c++实现ddos小工具可用于网站压测等性能测试+源码(期末大作业&课设&项目开发)

    基于qt+c++实现ddos小工具可用于网站压测等性能测试+源码,适合期末大作业、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ 基于qt+c++实现ddos小工具可用于网站压测等性能测试+...

    游戏 压力测试工具

    标签中的“源码”暗示了我们可能需要掌握C++、C#或Java等编程语言,以便对测试工具进行调整和扩展。 在实际操作中,一个典型的游戏压力测试流程可能包括以下几个步骤: 1. **配置测试环境**:设置服务器和客户端的...

    测试工具,C语言代码编辑,单元测试工具

    在IT行业中,测试工具、C语言代码编辑器以及单元测试工具是编程开发过程中不可或缺的部分。这些工具对于确保软件质量和优化代码效率至关重要。 首先,我们来深入理解“测试工具”。测试工具是专门设计用来帮助...

    StressMark压力测试软件

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

    深入浅出单元测试,深入浅出单元测试,深入浅出单元测试

    单元测试的目的是尽早发现错误,减少集成测试和系统测试的压力,提高代码质量。通过编写自动化测试用例,开发者可以快速验证代码修改的影响,从而提高工作效率。 二、单元测试的原则与实践 1. 优先级:测试驱动开发...

    c++常见笔试题目和软件测试有关题目

    7. **性能测试**:评估软件在高负载或压力下的表现,包括负载测试、压力测试和稳定性测试。 8. **安全性测试**:检查软件的防护能力,防止未授权访问、数据泄露和其他安全威胁。 9. **回归测试**:当代码有改动时...

    HP-Socket压力测试 易源代码

    本话题将聚焦于HP-Socket的压力测试及其易源代码,这对于我们理解和优化网络服务性能至关重要。 一、HP-Socket简介 HP-Socket是一个C++编写的网络通信库,它提供了丰富的API接口,支持TCP、UDP等多种网络协议。该...

    常用的软件测试工具

    常见的单元测试工具包括: - **测试框架**:如 Delphi DUnit、Java JUnit、C++ CppUnit、Visual Basic VBUnit 和 (.NET platform) NUnit 等,提供了一套完整的测试框架,简化了单元测试的编写和执行过程。 通过...

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

    【服务器压力测试工具(TcpServer Test Tool)】是一款专门用于测试服务器性能的工具,它能够模拟大规模并发连接,以及各种数据包发送模式,为开发者和系统管理员提供了强大的服务器负载和稳定性测试能力。...

    主流软件测试工具介绍

    为了提高测试效率和准确性,市场上出现了多种多样的测试工具,这些工具按照不同的分类标准可以分为白盒测试工具、黑盒测试工具、性能测试工具以及测试管理工具等。 #### 二、白盒测试工具 白盒测试工具主要用于检查...

    软件测试资源:常见的测试工具,包含详细介绍

    Locust是一款基于Python的性能测试工具,它可以模拟大量用户对系统施加压力。 白盒测试工具主要是对程序内部逻辑进行检查,确保其结构正确性。junit和testng是Java语言下的单元测试框架,unittest和pytest是Python...

    Web压力测试工具软件

    Web压力测试工具软件是针对Web应用程序进行性能和稳定性检测的重要工具。它们的主要目的是模拟大量并发用户访问,以检查系统在高负载下的响应速度、资源消耗和可能出现的问题。Web Application Stress Tool是一款...

    java、c++、软件测试面试题

    4. **自动化测试**:理解Selenium、JUnit等自动化测试工具的使用,以及如何编写测试脚本。 5. **性能测试**:了解压力测试、负载测试、稳定性测试,使用工具如JMeter进行性能评估。 6. **敏捷开发与持续集成**:...

Global site tag (gtag.js) - Google Analytics