Java+TestNG接口测试

走进Java接口测试大门之测试框架TestNG 一、简介 TestNG 是一个受 JUnit 和 NUnit 启发的测试框架,旨在简化广泛的测试需求,从单元测试到接口测试。 但引入了一些新功能,使其更强大,更易于使用,例如: 注释。 在线程池中运行测试,并提供各种可用策略(单线程,多线程等等) 测试的代码是多线程安全的 灵活的测试配置 支持数据驱动的测试(使用 @DataProvider) 支持参数化 强大的执行模型(不再是 TestSuite) 由各种工具和插件(Eclipse,IDEA,Maven 等)支持。 嵌入 BeanSh. 阅读详情

接口自动化测试 – Java+TestNG 测试 Restful Web Service

关键词:基于Rest的Web服务,接口自动化测试,数据驱动测试,测试Restful Web Service, 数据分离,Java+Maven+TestNG

 

本文主要介绍如何用Java针对Restful web service 做接口自动化测试(数据驱动),相比UI自动化,接口自动化稳定性可靠性高,实施难易程度低,做自动化性价比高。所用到的工具或类库有 TestNG, Apache POI, Jayway rest-assured,Skyscreamer - JSONassert

 

简介:

思想是数据驱动测试,用Excel来管理数据,‘Input’ Sheet中存放输入数据,读取数据后拼成request 调用service, 拿到response后写入 ‘Output’ Sheet 即实际结果, ‘Baseline’为基线(期望结果)用来和实际结果对比的,‘Comparison’ Sheet里存放的是对比结果不一致的记录,‘Result’ Sheet 是一个简单的结果报告。

 

Maven工程目录结构:

 

 

详细介绍

核心就一个测试类HTTPReqGenTest.java 由四部分组成

@BeforeTest  读取Excel (WorkBook) 的 ‘Input’ 和 ‘Baseline’ sheet

 

 

 

并且新建‘Output’, ‘Comparison’, ‘Result’ 三个空sheet

 

读取http_request_template.txt 内容转成string

 

 

@DataProvider (name = "WorkBookData")

TestNG的DataProvider, 首先用DataReader构造函数,读取Excel中Input的数据,放入HashMap<String, RecordHandler>, Map的key值就是test case的ID,value是RecordHandler对象,此对象中一个重要的成员属性就是input sheet里面 column和value 的键值对,遍历Map将test case ID 与 test case的value 即input sheet前两列的值放入List<Object[]> ,最后返回List的迭代器iterator (为了循环调用@Test方法)

 

@Test (dataProvider = "WorkBookData", description = "ReqGenTest")

测试方法,由DataProvider提供数据,首先根据ID去取myInputData里的RecordHandler, 由它和template 去生成request, 然后执行request 返回response,这些工作都是由HTTPReqGen.java这个类完成的,借助com.jayway.restassured, 返回的response是一个JSON体,通过org.skyscreamer.jsonassert.JSONCompare 与Baseline中事先填好的期望结果(同样也是JSON格式)进行比较, 根据结果是Pass还是Fail, 都会相应的往Excel里的相应Sheet写结果。

 

@AfterTest

写入统计的一些数据

关闭文件流

 

实现代码:

 HTTPReqGenTest.java

View Code

 

DataReader

View Code

 

HTTPReqGen

View Code

 

RecordHandler

View Code

 

其它不重要的类不一一列出来了。

 

pom.xml

View pom.xml

 

运行是通过TestNG的xml文件来执行的, 里面配置了Parameter “workBook” 的路径

 

 

 

TestNG的运行结果都是Pass, 但事实上里面有case是Fail的,我只是借助TestNG来运行,我并没有在@Test方法里加断言Assert, 所以这里不会Fail, 我的目的是完全用Excel来管理维护测试数据以及测试结果,做到数据脚本完全分离。

 

 

Output sheet

 

Comparison sheet

 

Result sheet

 

 

当然 你也可以把maven工程打成一个可执行jar来运行,不过需要增加一个main函数作为入口,xml测试文件通过参数传递进去,另外还需要在pom里配置一些插件,像maven-jar-plugin。

如果你还需要做back-end DB check,你可以在Input里再增加几列,你要查询的表,字段,Baseline里也相应的加上期望结果,这里就不再赘述了。

Java+testng+IDEA自动化接口测试框架搭建mac 阅读详情

相关推荐

java+RESTassured+testng+allure2 接口测试框架分享(github)

文章目录写在前面项目结构介绍基本 usageproperties数据驱动日志系统surefire 插件testng 监听器报告输出其他 写在前面 值得注意的是 框架中测试了百度搜索接口和企业微信的一些功能接口,对于百度搜索不需要身份信息,直接运行框架可以正常测试百度搜索,但是对于企业微信而言其中的操作需要 token 信息(处于安全考虑,博主未将自己的 token 放置其中),所以如要测试通过企业微信的接口,需要大家注册一下免费的企业微信,然后将其中的 corpid 和通讯录 corpsecret 填写进

abcnull 的博客 3535

Java接口自动化测试框架系列(四)TestNG测试数据参数化与加密方法

一、测试数据参数化 TestNG参数化大致有两种方式 使用@Paramenters读取xml中的参数 使用@DataProvider注解传参 由于数据是保存到excel中,所以使用@DataProvider注解来进行测试参数的取值 通过Java接口自动化测试框架系列(二)表格设计与数据读取来进行excel中数据的读取 //配置文件取值 @DataProvider(name = "h...

YOGOUO949596的博客 301

JAVA 接口自动化测试Demo_testng

主要对举例对国家气象局接口自动化测试进行讲解(Get请求及结果断言),以达到自动化测试入门目的,需要有一定的JAVA知识(HTTP相关)。

(转)接口自动化测试 – Java+TestNG 测试 Restful Web Service

本文主要介绍如何用Java针对Restful web service 做接口自动化测试(数据驱动),相比UI自动化,接口自动化稳定性可靠性高,实施难易程度低,做自动化性价比高。所用到的工具或类库有 TestNG, Apache POI, Jayway rest-assured,Skyscreamer - JSONassert 简介: 思想是数据驱动测试,用Excel来管理数据,‘Inpu...

weixin_34133829的博客 1135

Httpclient+testng接口测试小例子

httpclient testgn 接口测试

AWVS安装与使用教程

Acunetix Web Vulnerability Scanner(简称AWVS)是一款知名的自动化网络漏洞扫描工具,它通过网络爬虫测试你的网站安全,检测流行安全漏洞。它可以扫描任何可通过Web浏览器访问的和遵循HTTP/HTTPS规则的Web站点和Web应用程序。适用于任何中小型和大型企业的内联网、外延网和面向客户、雇员、厂商和其它人员的Web网站。WVS可以通过检查SQL注入攻击漏洞、XSS跨站脚本攻击漏洞等漏洞来审核Web应用程序的安全性。

qq_59607911的博客 4098

testng执行参数_TestNG参数化测试

TestNG中的另一个有趣的功能是参数化测试。 在大多数情况下,您会遇到业务逻辑需要大量测试的场景。 参数化测试允许开发人员使用不同的值一次又一次地运行相同的测试。TestNG可以通过两种不同的方式将参数直接传递给测试方法:使用testng.xml使用数据提供者在本教程中,我们将向您展示如何通过XML为了方便演示,这里创建一个名称为:ParameterTest 的 Maven 工程,其结构如下所示...

weixin_39860280的博客 452

Zenoh:统一数据平面协议,重塑物联网与边缘计算架构

在分布式系统与物联网领域,数据通信与处理常面临协议割裂的挑战。传统方案如MQTT、Kafka、gRPC等,分别针对发布/订阅、流处理和RPC等不同场景,导致架构复杂、集成成本高。其核心问题在于未能统一处理“运动中数据”(Data in Motion)与“静止中数据”(Data at Rest)。Zenoh协议通过创新的“Key-Value”寻址与“Selector”查询语言,将发布/订阅、存储、查询和计算四种核心操作融合进单一协议,构建了统一的抽象层。这种设计实现了极低的协议开销(仅5字节头部)和地理分布式

weixin_29597551的博客 290

testng执行参数_Java自动化测试框架(TestNG)——参数化测试

通常情况下,围绕着一个被测接口,根据边界值、等价类等测试方法,我们会涉及多条用例,使用不同的数据来进行测试,此时我们是否需要重复的写很多测试代码来实现这种场景下的测试呢?答案是否定的。TestNG 提供了参数化的特性,允许使用不同的值重复运行同一个测试方法。TestNG支持两种不同的方式将参数直接传递给测试方法:使用 @Parameters注解,需结合 testng.xml使用。使用 @DataP...

weixin_39559071的博客 322

uCOS中的消息邮箱(:task与task之间传递一个数据(数据缓冲区))

程序需求,需要完成task与task之间  字符数组的数据传输 比如:在ucos中,串口2接收的字符数组是不定时的&不定长的;只有当接收到数据的时候_才将数据赋值给新数组 具体的程序示意如下: 图1:消息邮箱测试中的     向消息邮箱发送消息(OSMboxPost(Str_Box,(void*)rec);//发送消息--(向 消息邮箱_msg_key发送消息) ),实际项目需求的

faguoduifangui的博客 4540

Altium Designer20 PCB板子绘制

版层 top layer 顶层 bottom layer 底层 设置板子大小 布局 过孔 top layer层连到bottom layer层。通过via连接。 设置线宽 在design rules里可以设置线宽。 右键new rule 可以新增线宽,电源设置成20mil 还可以设置很多其他的线宽 修改安全距离 安全距离太短容易出现毛刺,然后短路,一般设置成20mil 修改元器件旋转角度 修改rotation step,每次旋转45°。 修改光标大小 下面的cursor type是修改光标

及时总结 2581

10、testng---参数化

testng参数化方式

weixin_43877527的博客 772

QCC51XX---人机接口设备协议( HID)

QCC51XX---人机接口设备协议( HID)

weixin_42162924的博客 818

java testng接口测试_使用java+TestNG进行接口回归测试

TestNG是一个开源自动化测试框架,TestNG表示下一代(Next Generation的首字母)。 TestNG类似于JUnit(特别是JUnit 4),但它不是JUnit框架的扩展,相较于Junit而言,功能更强大,使用起来更加方便,比较适合测试人员来进行集成测试或是接口回归测试。TestNG有以下几大特点:使用java和面向对象的功能;方法的名称就不必受限于某种固定的格式,可以通过注释来...

weixin_30698721的博客 643

【系统架构设计师】预测试卷一:综合知识(75道选择题)

软件架构风格是描述某一特定应用领域中系统组织方式的惯用模式,架构风格反映领域中众多系统所共有的结构和 (48),强调对架构(49)的重用。 (48) A. 语义特性 B. 功能需求 C. 质量属性 D. 业务规则 (49) A. 分析 B. 设计 C.实现

数据知道的博客 7766

【AI智能体】Codex 生成高质量电商套图实战操作详解

Codex 生成高质量电商套图实战操作详解

congge 4521

java testng接口测试_如何利用TestNG做接口自动化测试?Java+TestNG测试实例分享

上一篇自动化测试我们大概了解了测试的目标、测试的技术选型以及搭建平台的目标及需求,也确定了自动化测试方案以testNg作为整个测试流程贯穿的基础支持框架,那么testNg究竟有什么特点?本篇开始我们来详细的学习testNg这个测试框架。为什么要用testNg?首先我们学习之前,先思考一个问题,java测试的框架很多,为什么要用testNg呢?比如junit,使用的人很多,几乎所有java开发人员都...

weixin_36070880的博客 1554

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

记录一次简单TestNG + JAVA搭建接口测试

记录一次简单TestNG + JAVA搭建接口测试 开发环境: Excel + TestNG + Java 一、具体流程 主要分为3个步骤: 测试用例(@Test) + 数据驱动(@DataProvide) + 获取数据源(read Excel)。 1. 测试用例 @Test public class TestExample { ...

Ho_mj的专栏 479

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

[转] JAVA+Maven+TestNG搭建接口测试框架及实例

JAVA+Maven+TestNG搭建接口测试框架及实例 </h1> <div class="clear"></div> <div class="postBody"> 1、配置JDK 见另一篇博客:http://www.cnblogs.com/testlurunxiu/p/5933912.html 2、安装Ecli...

qq_20848879的博客 393

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

JAVA+Maven+TestNG搭建接口测试框架及实例

1、配置JDK 见另一篇博客:http://www.cnblogs.com/testlurunxiu/p/5933912.html 2、安装Eclipse以及TestNG Eclipse下载地址:http://beust.com/eclipse TestNG安装过程: 在线安装 输入网址:http://beust.com/eclipse 在线安装会比较慢,有的人可能还会链...

weixin_41508948的博客 2610

java testng接口测试_JAVA+Maven+TestNG搭建接口测试框架及实例

一、Eclipse安装TestNG(两种安装方式,在线安装以及离线安装)在线安装name:TestNGLocation:http://beust.com/eclipse在线安装会比较慢,有的人可能还会链接不上这个地址,所以下面介绍一个离线下载的方法离线下载:TestNG Eclipse 插件下载地址http://testng.org/doc/download.htmla.下载离线安装包并解压b.将...

weixin_35841706的博客 398

java+Maven+testng+jenkins 自动化接口测试

同事离职,交接了自动化接口测试代码,踩过无数坑。现记录一下: 背景: 1. idea的项目是用的普通的quick start模板建的maven项目,目录结构里没有testng.xml。 2. 在idea里跑接口,木有问题. 但是提交到jenkins,用maven编译就会报错。 3. jenkins新建的是freestyle project. 构建时,用mvn 命令写成shell脚本执行 3. 在idea里用maven下的install重新编译打包,发现同样报错 testSuiteXmlFile

flyingshuai的专栏 995

Java中的接口测试:如何使用JUnit与TestNG实现自动化测试

在现代软件开发中,接口测试是保证系统质量和稳定性的关键部分。在Java中,JUnit和TestNG是最常用的测试框架,它们都可以用于实现接口的自动化测试。根据项目的需求和复杂性,选择合适的测试框架和方法,可以有效地提高测试的覆盖率和可靠性。通过实践中的最佳实践,如使用Mock对象、参数化测试等,可以进一步优化测试过程,确保软件质量。TestNG是另一个流行的测试框架,设计时借鉴了JUnit,但提供了更多的功能和灵活性。在接口测试中,使用Mock对象可以帮助隔离测试对象,避免外部依赖对测试结果的影响。

微赚淘客系统开发者博客 1040

苍穹外卖接口测试项目(基于 Java+TestNG+OkHttp)搭建与维护指南

本文介绍了基于Java+TestNG+OkHttp的苍穹外卖接口测试项目搭建指南。项目采用Maven构建,使用TestNG管理测试用例,OkHttp发送请求,通过YAML配置多环境参数,Gson处理JSON数据。文章详细说明了从环境准备、项目创建到依赖配置的全过程,包括JDK21、Maven3.6+等必备工具的安装验证,以及pom.xml依赖项配置。项目支持员工登录等接口的正反向测试,代码托管于Gitee便于协作维护。配置文件中定义了后端服务地址、接口前缀和测试账号等关键信息,为后续接口测试扩展提供基础框架

WILK的博客 839
上一篇: http接口测试—自动化测试框架设计
下一篇: TestNG测试用例
java2013liu
博客等级 码龄14年 141粉丝 61原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值