首先简要介绍一下我们的系统。我们整个系统中,可视化的应用(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配合,对接口测试用例进行持续集成。这样也好得到测试报告。
上面就是我对于基于数据驱动的接口测试框架设计的一些实践。比较大概的写出来,具体还有很多很多的细节,以及在这开发之中遇到的困难,如果有机会再慢慢道来。平凡的技术做踏实的事情。
供大家参考。转载请注明出处,谢谢。
相关推荐
该项目是一款基于Python开发的数据驱动接口自动化测试框架,采用pytest、parametrize、requests/httpx等库,并集成了yaml、allure、redis、mysql等工具。框架支持低代码操作,兼容Python、HTML、Shell等语言,共计...
本文旨在探讨一种基于关键字驱动方法的自动化测试框架的设计与实现,以期改善现有的C++接口测试方案。 #### 自动化测试技术概述 自动化测试技术主要包括两种类型:数据驱动测试和关键字驱动测试。 1. **数据驱动...
在【基于python的接口自动化测试框架(带演示案例版)】中,我们可以看到一个完整的测试解决方案,它可能包含了以下关键知识点: 1. **Python基础**:Python的基础语法是构建自动化测试框架的基础,包括变量、数据...
总的来说,这个基于 Python 的接口自动化测试框架利用了数据驱动测试的方法,通过 DDT 模块和 Excel 数据源,实现了高效且易于维护的测试。这种框架对于接口测试来说非常实用,尤其是在面对复杂多变的接口参数时,...
本项目是一款基于Python和HTML的接口自动化测试框架设计源码,包含31个文件,涵盖12个Python源代码文件、10个字节码文件、3个XML配置文件、1个Git忽略文件、1个Idea项目文件、1个Markdown文件、1个配置文件、1个HTML...
本研究主要探讨了如何在Selenium自动化测试框架中运用数据驱动技术,以实现更加灵活和高效的测试方案。 数据驱动测试(Data Driven Testing)是一种测试方法,它将测试逻辑与测试数据分离,使测试用例的执行依赖于...
在这个场景中,我们关注的是“基于python、postman的客达天下系统测试接口测试CRM”。这涉及到两个主要工具:Python编程语言和Postman。 **Python** 是一种广泛使用的高级编程语言,尤其在自动化测试、数据处理和...
本项目基于Python3,利用Selenium库进行Web应用的自动化测试,同时结合了关键字驱动和数据驱动两种测试方法,以实现更灵活、可扩展的测试方案。 Selenium是一个开源的Web应用程序自动化测试工具,它可以模拟用户在...
在接口测试方面,基于模型驱动的自动化测试方法同样能够发挥巨大作用。接口测试主要用于检测不同系统组件之间交互的正确性,包括API接口测试。由于接口测试往往需要大量重复测试用例的编写和执行,因此模型驱动的...
4. **设计驱动程序结构**:基于流接口驱动模型,设计驱动程序的内部结构和接口,确保能够正确解析和响应USB设备的事件和数据。 5. **实现驱动程序代码**:编写具体的驱动程序代码,实现与USB摄像头的数据交换和控制...
**基于Python的接口自动化测试框架说明** ...它的设计考虑了测试用例的可维护性和测试报告的详尽性,是团队进行接口测试的一个实用工具。随着持续优化和功能扩展,该框架有望变得更加成熟和完善。
本文总结介绍接口测试框架开发,环境使用python3+selenium3+unittest测试框架及ddt数据驱动,采用Excel管理测试用例等集成测试数据功能,以及使用HTMLTestRunner来生成测试报告,目前有开源的poman、Jmeter等接口...
本篇文章将详细解析一个基于Python、pytest、yaml、ddt和allure的接口自动化测试框架,帮助你理解和构建自己的测试解决方案。 1. **Python**: Python是一种高级编程语言,因其简洁的语法和丰富的库支持,成为自动化...
Python接口自动化测试框架是一种高效的测试方法,它允许开发者或测试工程师使用编程语言(在这个案例中是Python3)来设计和执行测试用例,以验证软件系统中的接口功能。本项目提供的"python接口自动化测试框架代码...
### 基于WDF的PCIe接口高速数据传输卡的驱动程序开发 #### 概述 随着高性能计算技术的迅速发展,计算机I/O技术变得至关重要。PCI Express(PCIe)作为一种先进的总线架构,凭借其高速数据传输能力,成为了众多高...
这个名为"mvvm一个简单的基于数据驱动视图的库"的项目,可能是为了实现一个轻量级的MVVM库,帮助开发者更高效地构建动态、响应式的用户界面。 在MVVM模式中,主要涉及三个核心组件: 1. **Model(模型)**:代表...
#### 三、自动化测试框架设计 ##### 3.1 框架设计理念 该框架在设计时充分借鉴了当前流行的自动化测试框架的一些先进思想,如模块化、层次化等,以适应网管系统复杂多变的测试需求。同时,为了更好地支持网管系统...
4. **TDD(测试驱动开发)**:基于Python的测试框架如`unittest`或`pytest`,可以用于实现TDD,先编写测试用例,然后编写代码使其通过。 5. **版本控制**:项目可能使用了Git进行版本控制,帮助开发者跟踪代码更改...
对于需要深入理解底层工作原理或需要自定义功能的情况,开发者可以选择使用编程语言的测试框架进行源码级的接口测试。例如,使用JUnit(Java)、pytest(Python)或NUnit(.NET)来编写测试脚本,直接调用API接口,...
1. 测试框架选型:一般接口自动化框架会基于如JUnit、PyTest等测试框架,通过编写断言和执行逻辑来实现自动化测试。 2. 请求库:如Python的requests库,用于发送HTTP请求,模拟客户端与服务器的交互。 3. 数据处理:...