linux c++ 数据库连接池的心跳机制自动重连c++代码,自动化测试工具(C++)---设计

需求分析

随着IMIXAPI C++项目的推进,不断的出现Bug,为了能够有效的控制项目的质量,急需建立自己的测试样例库:

l  有效管理测试样例:对于IMIXAPI C++小组,测试工作量大,但是能够投入的资源少,因此有效的管理和维护测试样例极为重要;

l  自动化测试:

l  跨平台:IMIXAPI C++的项目是跨平台的(Windows/Linux),所以测试工具同样也需要跨平台;

l  其他:由于能够投入的资源很少,因此对测试平台的设计要求是高可维护性和高可扩展性;

设计方案

系统架构

550284951ade107a44d3c7831e6914d3.png

详细设计

展示层

Linux版本:

Linux版本目前支持的功能包括:

l  批量测试

l  单个测试样例测试

IMIXTestUtility在Linux平台上采用控制台。

界面显示:

73169b1214482b8d3f89c8aa34748210.png

Windows版本:

Windows版本目前支持的功能包括:

l  批量测试

l  单个测试样例测试

l  日志查看

l  协议XML检验/解析

l  GTest测试数据自动生成器

l  Tiger测试数据自动生成器

l  Tiger测试结果检验

IMIXTestUtility在Windows下采用MFC设计的界面。

用户界面主要分为两大部分:

1.测试样例库管理及测试

2.辅助性测试工具

61e70be1fdfcd43be5073c00f5440e0f.png

左边展示的是测试样例库,右边则是一些辅助性的功能。

如上图所以,目前包括四个测试大类:

1.Utility项目测试(CaseUtility)

2.协议测试(CaseProtocol)

3.IMIXAPI测试(CaseIMIX)

4.集成测试(CaseInteg)

7006a168afb32830f72f7f30b7e3ef66.png

上图是每个测试大类下面的测试样例。

业务逻辑层

业务逻辑主要由三部分组成:

l  测试样例库

l  测试样例控制逻辑

测试样例库的管理

整个测试样例库的管理目前分为三层:

第一层:模块的划分,比如说IMIX、Utility、协议、集成测试

第二层:每一个模块下面,按照功能进一步的划分,例如IMIXAPI下面还分为心跳功能测试、重连功能测试等等。

第三层:每一个功能下面,则是一系列的测试样例。

20c1a87eb311e8643b73d629f44875d2.png

CTestFactory主要管理和控制测试样例。

CTestObject则作为功能测试的基类。每一个功能测试下面,还包含一系列的具体的测试样例,每个测试样例一个函数。

系统层

系统抽象层主要由三部分组成:

1.进程控制,包括进程的创建和终止,进程间的互斥操作

2.线程管理

3.文件操作

系统抽象层有一个统一的接口:

以下是文件操作的接口:

class CFileOp

{

private:

#ifdef WIN32

long m_lf;

_finddata_t

m_dirData;

#else

DIR *m_pDirPtr;

struct dirent *m_pDirData;

#endif

public:

char *GetName();

int OpenDir(char *pDirName);

int ReadDir();

void CloseDir();

void GetFilesFromDir(char

*pTemplatePath, set *pTemplateDir);

};

进程操作的接口:

int NewProcess(string path, unsigned short show, int *dwProcessId);

BOOL DeleteProcess(int dwProcessId);

int WaitForProcess(int dwProcessId, int millSeconds);

void* CreateSem(char *semname, BOOL initVal);

void CloseSem(void *hSem);

void DeleteSem(char *hSemName);

void WaitForSem(void *hSem, int millSeconds);

void ReleaseForSem(void *hSem, int count = 1);

Linux和Windows平台拥有同一套接口,这样子,当在不同的平台操作的时候,上层的代码不需要做任何的改动,就可以在不同的平台上编译和运行,提高了工程的可维护性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值