- 浏览: 369837 次
- 性别:
- 来自: 苏州
文章分类
- 全部博客 (335)
- C++ (190)
- 设计模式 (43)
- 数据库技术 (5)
- 网络编程 (11)
- 自动化测试 (6)
- Linux (13)
- OpenSSL (10)
- MS Crypt API (5)
- SCM (2)
- English (4)
- Android (10)
- EMV规范 (1)
- Saturn Platform (0)
- C (10)
- SQL (2)
- ASP.NET (3)
- 英语口语学习 (3)
- 调试工具 (21)
- 编译技术 (5)
- UML (1)
- 项目管理 (5)
- 敏捷开发 (2)
- Http Server (6)
- 代码审查、代码分析 (5)
- 面试基础 (10)
- 重点知识 (16)
- STL (6)
- Efficient C++资料 (8)
- 数据结构和算法 (7)
- 读书笔记 (0)
- 开源项目 (4)
- 多线程 (2)
- Console App (6)
- 个人开源项目 (4)
- IBM DevelopWorks (4)
- Java (16)
- 内存泄漏相关调试和检测 (13)
- 软件测试相关技术 (2)
- C# (11)
- Apple Related (1)
- 软件测试和管理 (2)
- EMV (1)
- Python (1)
- Node.js (6)
- JavaScript (5)
- VUE (1)
- Frontend (1)
- Backend (4)
- RESTful API (3)
- Firebase (3)
最新评论
-
u013189503:
来个密码吧
[C++][Logging] 项目中写日志模块的实现 -
wyf_vc:
来个密码啊!!
[C++][Logging] 项目中写日志模块的实现
由于项目中一直要进行单元测试,适合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编写示范
引用
设计思路:
利用某一个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; }
- Test_Tool_-_Sample_Package.zip (1.6 MB)
- 下载次数: 1
- UnitTest_Framework_Sample.zip (842.2 KB)
- 下载次数: 0
- UnitTest_Framework_Sample_2016-07_.zip (6.4 MB)
- 下载次数: 0
- Test_Framework.zip (239.8 KB)
- 下载次数: 0
发表评论
-
FreeRTOS
2022-03-05 16:31 248Ref https://blog.csdn.net/weix ... -
Python: HTTP文件下载压力测试工具
2020-12-15 17:45 491import urllib.request import ... -
[Python][网络爬虫]
2020-09-28 16:36 0#!/usr/bin/python #coding: U ... -
串口通讯相关
2018-11-02 13:44 411https://bbs.csdn.net/wap/topics ... -
[转]C++验证IP是否可以PING通
2018-10-30 17:54 1325https://www.cnblogs.com/guoyz13 ... -
C++/MFC 換皮膚
2018-10-20 11:05 477https://blog.csdn.net/u01123991 ... -
WinCE 截屏 - C++ 代碼
2018-08-31 09:45 574// this function create a bmp ... -
Android NDK搭建環境
2017-11-27 13:25 580https://www.cnblogs.com/ut2016- ... -
8583协议相关
2017-10-17 13:38 5738583相关资料,整理中... -
Java高级应用之JNI
2017-06-19 09:00 600参考link http://www.cnblogs.com/l ... -
C++实现ping功能
2017-04-18 11:21 2155基础知识 ping的过程是向目的IP发送一个type=8的I ... -
OpenSSL 编译环境搭建
2017-03-27 15:01 9061 安裝VS2008到 c:\Program Files (x ... -
最优非对称加密填充(OAEP)
2017-03-25 14:53 1582OpenSSL命令---rsautl http://blog. ... -
[Platform Builder] 设置SVM OS build Env
2016-11-10 11:39 01 copy one OSDesign Project to ... -
[Windows] System Error Codes(GetLastError )0-----5999
2016-10-26 13:28 1881ERROR_SUCCESS 0 (0x0) T ... -
开源Windows驱动程序框架
2016-09-17 21:35 871转自 http://code.csdn.net/news/28 ... -
c/c++代码中执行cmd命令
2016-09-14 14:50 1908转自 http://blog.csdn.net/slixinx ... -
C#使用C++标准DLL实例(包含callback)
2016-09-11 19:44 1086C++编写标准Win32DLL如下 头文件 /***** ... -
C#调用C++的DLL搜集整理的所有数据类型转换方式
2016-09-09 16:07 969转自 http://www.cnblogs.com/zeroo ... -
WinCE CPU使用率计算 测试工具
2016-09-08 16:14 991转自 http://blog.csdn.net/jan ...
相关推荐
本主题关注的是一个用C++编写的TCP服务器压力测试工具的源代码,这对于理解和优化网络服务的性能至关重要。C++是一种强大的编程语言,常用于构建高性能的应用程序,尤其是涉及到系统级编程和网络通信时。 TCP(传输...
此外,培训资料还分析了C++程序常见问题,并介绍了一些专门用于C++的单元测试和性能测试工具。比如,使用CPPUnit进行单元测试,利用Purify进行内存测试,运用Quantify进行性能测试,以及使用PureCoverage进行代码...
基于qt+c++实现ddos小工具可用于网站压测等性能测试+源码,适合期末大作业、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ 基于qt+c++实现ddos小工具可用于网站压测等性能测试+...
标签中的“源码”暗示了我们可能需要掌握C++、C#或Java等编程语言,以便对测试工具进行调整和扩展。 在实际操作中,一个典型的游戏压力测试流程可能包括以下几个步骤: 1. **配置测试环境**:设置服务器和客户端的...
在IT行业中,测试工具、C语言代码编辑器以及单元测试工具是编程开发过程中不可或缺的部分。这些工具对于确保软件质量和优化代码效率至关重要。 首先,我们来深入理解“测试工具”。测试工具是专门设计用来帮助...
StressMark测试软件是一个使用Visual C++编写的,开放源代码的测试工具,可以完成服务程序及重要算法的功能和性能测试,其最主要的功能是模拟多线程或多客户端的自动化压力测试。 我们可以利用StressMark软件完成的...
单元测试的目的是尽早发现错误,减少集成测试和系统测试的压力,提高代码质量。通过编写自动化测试用例,开发者可以快速验证代码修改的影响,从而提高工作效率。 二、单元测试的原则与实践 1. 优先级:测试驱动开发...
7. **性能测试**:评估软件在高负载或压力下的表现,包括负载测试、压力测试和稳定性测试。 8. **安全性测试**:检查软件的防护能力,防止未授权访问、数据泄露和其他安全威胁。 9. **回归测试**:当代码有改动时...
本话题将聚焦于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)】是一款专门用于测试服务器性能的工具,它能够模拟大规模并发连接,以及各种数据包发送模式,为开发者和系统管理员提供了强大的服务器负载和稳定性测试能力。...
为了提高测试效率和准确性,市场上出现了多种多样的测试工具,这些工具按照不同的分类标准可以分为白盒测试工具、黑盒测试工具、性能测试工具以及测试管理工具等。 #### 二、白盒测试工具 白盒测试工具主要用于检查...
Locust是一款基于Python的性能测试工具,它可以模拟大量用户对系统施加压力。 白盒测试工具主要是对程序内部逻辑进行检查,确保其结构正确性。junit和testng是Java语言下的单元测试框架,unittest和pytest是Python...
Web压力测试工具软件是针对Web应用程序进行性能和稳定性检测的重要工具。它们的主要目的是模拟大量并发用户访问,以检查系统在高负载下的响应速度、资源消耗和可能出现的问题。Web Application Stress Tool是一款...
4. **自动化测试**:理解Selenium、JUnit等自动化测试工具的使用,以及如何编写测试脚本。 5. **性能测试**:了解压力测试、负载测试、稳定性测试,使用工具如JMeter进行性能评估。 6. **敏捷开发与持续集成**:...