基于数据驱动的接口测试框架设计

首先简要介绍一下我们的系统。我们整个系统中,可视化的应用(web,APP)都是基于后端的saasapi。我们的saasapi采用rest风格,采用http协议,以json作为数据载体。所以,对后端的api接口进行测试很有必要。

  用到的技术包括:maven、junit4,json开发包、hudson、jdbc等等。

  1.项目目录结构(采用maven)

  2.用例组织和规则约束

  用例组织

  例如:trackSegListWithTime(轨迹分段)、segTrackData(轨迹点显示)接口属于我的车模块。那么就在src/test/java源文件夹下面建立一个我的车模块包com.cpsdna.saasapi.test.vehicle,然后新建测试接口的类:    TrackSegListWithTimeTest.java、 SegTrackDataTest.java

  命名规则

  测试类命名规则:接口名称+Test,例如SegTrackDataTest.java(轨迹点显示接口的测试类)

  方法命名规则:test+方法意义,例如testSegTrackDataWithNoObjId(以没有objId参数方式测试segTrackData接口 )

  3.测试方法步骤

  1.声明参数变量

  2.从数据库读取该参数变量的值

  3.组装发送的json报文,把参数变量加入其中

  4.向服务器端发送json

  5.接收从服务器端返回的信息(json或者其它)

  6.通过json开发包(json-lib,gson)解析从服务器返回的json

  7.添加断言(预期的结果和解析的实际结果是否一致)

  下面给一个实例:


 4.数据驱动

  1.为什么要用数据驱动?

  测试数据(参数变量)和测试行为(逻辑代码)分离。这些对于用例的健壮性,复用性都是至关重要的。

  2.为什么存在数据库?

  易于管理,存储方便。(后期我还建一个用例数据管理的web平台)

  5.如何保证取到所想要的参数值?

  类名+方法名+参数名,3个组合必须系统唯一,以此来保证调用正确的参数

  SELECT PARAM_VALUE FROM params WHERE CLASS_NAME = '"+className+"' AND METHOD_NAME='"+methodName+"' AND PARAM_NAME='"+paramName+"' AND `STATUS` = '0'

  6.测试数据管理

  1.通过数据库软件直接操作(存在误操作风险)

  2.通过开发的测试数据管理平台管理

  7.持续集成

  对于庞大的测试用例,一个个执行或者通过测试套件执行,很明显不方便。我们通过和hudson集成,把写好的代码提交到svn后,maven和hudson配合,对接口测试用例进行持续集成。这样也好得到测试报告。

  上面就是我对于基于数据驱动的接口测试框架设计的一些实践。比较大概的写出来,具体还有很多很多的细节,以及在这开发之中遇到的困难,如果有机会再慢慢道来。平凡的技术做踏实的事情。

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-10-25 14:16:52

基于数据驱动的接口测试框架设计的相关文章

基于Python的接口测试框架实例_python

背景 最近公司在做消息推送,那么自然就会产生很多接口,测试的过程中需要调用接口,我就突然觉得是不是可以自己写一个测试框架? 说干就干,由于现有的接口测试工具Jmeter.SoupUI等学习周期有点长,干脆自己写一个吧,不求人,所有功能自己都能一清二楚. 当然,写工具造轮子只是学习的一种方式,现成成熟的工具肯定比我们自己的写的好用. 开发环境 ------------------------------------------------------------- 操作系统:Mac OS X EI

基于数据驱动的活动该如何设计

最近在客户现场沟通几个系列的活动设计方案时,遭遇了一系列的挑战,说实话,客户给我深深的上了一课.在传统零售这样的行业中,思维模式与这些做惯了互联网和虚拟经济运营的人而言,有非常大的不同,多大的愿景,多么口若悬河的Story的模式,他们在意的不是这些.客户最在意的是落地,成本,ROI,你是否是基于数据驱动的设计.最大的感受是,在这样的企业中,更加注重数字驱动,对业态的敏感度并不是建立在纯粹的经验基础上,而是抱有对于数据的敏感度,提炼的经验. 的确在客户这里谈的最多是ROI,但是你不能简单的认为是客

基于WPF系统框架设计(5) Ribbon整合Avalondock 2.0实现多文档界面设计(二)

AvalonDock 是一个.NET库,用于在停靠模式布局(docking)中排列一系列WPF/WinForm控件.最新发布的 版本原生支持MVVM框架.Aero Snap特效并具有更好的性能. AvalonDock 2.0版本已经发布了,新版本 是用MVVM框架重新编写,似乎也用了Command(命令)模式.2.0版的文档尚未发布,但你可以参考 Avalon.TestApp 或者2.0版源码中的Avalon.MVVMTestApp文件夹来查看新的API. 前一篇博文有介绍关于AvalonDoc

基于WPF系统框架设计(4) Ribbon整合Avalondock 2.0实现多文档界面设计(一)

前些时间研究了WPF的一些框架,感觉基于Prism框架的MVVM模式对系统的UI与逻辑分离很好,所以就按照 之前Winform的框架设计,用WPF做了一套,感觉比Winform要强很多. MVVM模式和MVC模式一样,主要 目的是分离视图(View)和模型(Model),有几大优点 1. 低耦合.视图(View)可以独立于Model变 化和修改,一个ViewModel可以绑定到不同的"View"上,当View变化的时候Model可以不变,当 Model变化的时候View也可以不变. 2

【Qt编程】基于Qt的词典开发系列<一>--词典框架设计及成品展示

    去年暑假的时候,作为学习Qt的实战,我写了一个名为<我爱查词典>的词典软件.后来由于导师项目及上课等原因,时间不足,所以该软件的部分功能欠缺,性能有待改善.这学期重新拿出来看时,又有很多东西都不熟悉了.恰逢这学期课比较少,于是乎想写写关于这个软件制作的一系列文章,对日后重拾该软件时能够较快入手.当然,也非常乐意读者们在该软件的基础上添加一些功能,源代码会在该系列文章写完之后公布.可运行的词典软件的下载地址:http://download.csdn.net/detail/tengweit

AForge.NET是一个专门为开发者和研究者基于C#框架设计的视频录像

原文:AForge.NET是一个专门为开发者和研究者基于C#框架设计的视频录像 AForge.NET是一个专门为开发者和研究者基于C#框架设计的,他包括计算机视觉与人工智能,图像处理,神经网络,遗传算法,机器学习,模糊系统,机器人控制等领域.这个框架由一系列的类库组成.主要包括有:AForge.Imaging -- 日常的图像处理和过滤器AForge.Vision -- 计算机视觉应用类库AForge.Neuro -- 神经网络计算库AForge.Genetic -进化算法编程库AForge.M

VirtinSpector:一种基于UEFI的虚拟机动态安全度量框架设计与实现

VirtinSpector:一种基于UEFI的虚拟机动态安全度量框架设计与实现 严飞 石翔 李志华 王鹃 张焕国 通过可信硬件能够弥补单纯软件安全的不足,从整体上提高云系统的安全性.但是,面对云环境运行时的安全,传统可信硬件技术无法提供足够的保障.为此,提出了一种基于UEFI的虚拟机动态安全框架--VirtinSpector.该框架能够将UEFI固件作为可信基础,对云系统的基础设施层进行实时.动态的安全度量,提供传统可信技术无法达到的动态保护.在此框架基础上,以某国产服务器为实验平台,构建云环境

基于WPF系统框架设计(1) 仿Office2010 Ribbon的原因

为什么系统框架设计使用Ribbon导航模式? 这得从Office软件的演变说起.微软为什么最后选择使用 Ribbon,也许就是很多系统设计要使用Ribbon做功能导航的原因. 你是否还记得曾经使用过的 Microsoft Office界面? 自Microsoft Office诞生之日起,工具栏和菜单栏主导着用户的软件使用操作. 并在Microsoft Office 2.0中引入了嵌入式对话框. 随着Microsoft Office版本的更新,功能的增加,菜单栏和工具栏的数量也随之增多.

《精通自动化测试框架设计》目录—导读

作者简介 精通自动化测试框架设计 陈冬严,浙江大学硕士,具有10年软件测试和团队管理的工作经验,先后服务于ITSM.PLM软件研发企业,现就职于某金融行业核心机构IT规划部门.业余时间喜欢园艺. 邵杰明,热爱测试工作,10多年的测试行业经验,曾先后供职于多家世界一流软件公司担任测试开发和测试管理工作,积累了丰富的行业工作经验,拥有PMP认证,目前担任测试架构师的工作,致力于自动化测试设计.持续交付等方面的工作. 王东刚,常用网名fastpoint,资深测试专家,<软件测试与Junit实践>作者