REST服务的自动化测试

尽管我是Java和Scala开发人员,但我仍然对软件测试充满热情。 如果更精确-Web应用程序。 开发Web应用程序并确保应用程序具有良好的质量真的很有趣。

当我开始职业生涯时,最受欢迎的Web架构是MVC(模型视图控件),并且非常简单。 当您开发一些业务逻辑时,您必须编写一些单元测试来检查内部控制器功能的功能,这就足够了。 当时,集成测试是更复杂的任务,因为这种测试意味着使用了一些模拟框架。

但是时间到了。 而且,旧的MVC架构已不足以满足许多客户端类型的需求,例如智能手机,平板电脑,浏览器。 REST体系结构开始替代MVC。 越来越多的应用开始使用一种API通过HTTP与不同的客户端进行通信。 这种情况再创新。 因为所有与数据和数据处理有关的业务逻辑都集中在服务器上,而客户端负责数据的表示和其他额外的操作。
您可能已经猜到了,我刚刚描述了单页应用程序方法(SPA)中使用的原理。 通过这种方式,构建了许多现代应用程序Facebook,Instagram,Twitter。

尽管开发人员更改了他们的应用程序,但测试方式也发生了变化。 结果出现了一个新的层,在该层上测试不仅适用,而且非常有效。 我完全在谈论API层。 由于API是由不同的客户端(智能手机,台式机等)使用的,因此有必要收集一组测试,以检查所有类型客户端的通用逻辑,并突出显示特定于客户端的测试方案,以专注于特定于客户端的逻辑。 该逻辑适用于已经在API层中测试过的数据。

这种方法为我们提供了一种惊人的测试策略。 测试人员可以节省时间,因为他们不需要通过与已经测试的数据集进行交互来在不同的客户端上重复测试。 他们只需要关注UI和一些特定功能。

REST服务的自动化测试

以我自己的经验,我通过编写自动化测试脚本来执行REST API层的测试。 为此,我使用JayWay公司开发的REST保证库。 这个Java库确实是自动测试REST服务的强大武器。

这样的测试代码看起来非常不错:

@Testpublic void getLandLaordTest() {given().contentType(ContentType.JSON).pathParam("id", "DoYlvMXN").when().get("/landlords/{id}").then().statusCode(200).body("firstName", equalTo("Sam")).body("trusted", equalTo(false));}

这很简洁,一点也不冗长。 在Java项目中使用REST保证使用的另一个优势是它的简单性。 我可以教我的团队中的任何成员在3-4小时内开发此类测试。 它也可以与最受欢迎的Java测试框架(如TestNG,JUnit和Hamcrest)配合使用。

摘要

我建议测试您编写的代码,因为它可以使您的软件开发能力更上一层楼。 工作自动化是成功和节省时间的关键。

翻译自: https://www.javacodegeeks.com/2015/04/automated-testing-of-rest-services.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/360340.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

iOS 为tableview添加新的cell类

网址:http://www.howzhi.com/group/iosDevelop/discuss/2068转载于:https://www.cnblogs.com/liukunyang/p/3363881.html

怎么写计算机教学论文,如何写好一篇关于信息技术教育的论文

论文是一个汉语词语,拼音是ln wn,古典文学常见论文一词,谓交谈辞章或交流思想。当代,论文常用来指进行各个学术领域的研究和描述学术研究成果的文章,简称之为论文。今天小编给大家以信息技术教育为题的论文模板&#x…

JAXB做错了; 尝试Xembly

JAXB是一项具有10年历史的Java技术,它使我们能够将Java对象转换为XML文档(编组)并返回(取消编组)。 我认为这项技术基于setter和getter,并且通过将对象转换为被动数据结构而违反了面向对象编程的关键原理。…

rnn神经网络 层次_精讲深度学习RNN三大核心点,三分钟掌握循环神经网络

每天给小编五分钟,小编用自己的代码,让你轻松学习人工智能。本文将剖析循环神经网络(RNN)的工作原理,精讲循环神经网络的特点和实现方式。野蛮智能,小白也能看懂的人工智能。循环神经网络从何而来?我在我的这篇文章介绍…

我的偶像特质

1、泰国英拉:谦和品质,诚实,隐忍,有外交风范。 此前默默无闻的英拉依靠选举机器与个人魅力的完美协作,英拉完成了从女高管到女总理的身份飞越。 对手:“英拉从未利用媒体攻击商业对手,而是尽量避…

摆脱匿名类

我真的很喜欢编写和阅读lambda表达式-它们简洁,富于表现力和时尚(来吧,这样就没关系了!)。 将此与匿名类进行比较。 这就是为什么我喜欢摆脱它们! 在过去的几个月中,这种认识慢慢地实现了&…

惠普自动化测试软件官网,惠普最新测试管理工具 HP ALM 11.0 详细介绍

惠普应用生命周期管理(HPalm/" target"_blank" >ALM11)是业界首款集成的、跨技术和流程、可拓展的平台,使IT能够管理应用生命周期,并且从项目建议到运营全过程中贯穿应用交付。在拓展惠普软件应用组合(HPSoftwareApplicationsportfoli…

poj 题目分类(3)

OJ上的一些水题(可用来练手和增加自信) (poj3299,poj2159,poj2739,poj1083,poj2262,poj1503,poj3006,poj2255,poj3094) 初期: 一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法. (4)递推. (5)构造法.(poj329…

ARM学习(24)Can的高阶认识和错误处理

笔者来聊一下CAN协议帧的认识和错误处理。 1、CAN协议帧认识 CAN 差分信号,是经过CAN收发器转成差分信号的,CAN RX和TX是逻辑电平。CAN的基础知识,可参考笔者这边文章:ARM学习(21)STM32 外设Can的认识与驱…

云桌面 瘦终端_小米盒子连接Citrix云桌面

先前看到很多公司使用Wyse、Hp等瘦终端设备登陆Citrix云桌面,便想购得一台瘦终端设备,想来只是为了测试,况且瘦终端价格不低,便一直未买。后使用自己的平板连接Citrix XenDesktop创建的Win7桌面,感觉效果很好&#xff…

Apache Mesos + Marathon和Java EE

Apache Mesos是一个开放源代码群集管理器,可在分布式应用程序或框架之间提供有效的资源隔离和共享。 Apache Mesos从计算机(物理或虚拟)上提取CPU,内存,存储和其他计算资源,从而使容错和弹性的分布式系统易…

计算机指令中数据寻址的方式,1.变址寻址需要在指令中提供一个寄存器编号和一个数值。 2.计算机的指令越多,功能越强越好。 3.程序计数...

满意答案happysk72推荐于 2017.12.16采纳率:57% 等级:12已帮助:21199人1.对变址寻址就是将寄存器(该寄存器一般称作基址寄存器)的内容与指令中给出的地址偏移量相加,从而得到一个操作数的有效地址。变址寻址方式常用于访问某基…

tab切换-自动、点击、内容变换

<div class"tab"> <ul class"pics"> <li><a href""><img src"images/pic2.jpg" width"448" height"315" alt"宝业大和工业化住宅制造…

在JAX-RS中使用@Context [第1部分]

JAX-RS提供Context批注&#xff0c;以在RESTful服务中注入各种资源。 一些最常用的注入组件是HTTP标头&#xff0c;HTTP URI相关信息。 这是完整列表&#xff08;无特定顺序&#xff09; HTTP标头 HTTP URI详细信息 安全上下文 资源上下文 请求 组态 应用 提供者 让我…

babel原理_带你了解 snowpack 原理,你还学得动么(下)

作者&#xff1a;AlienZHOU转发链接&#xff1a;https://zhuanlan.zhihu.com/p/149351900目录带你了解 snowpack 原理&#xff0c;你还学得动么(上)带你了解 snowpack 原理&#xff0c;你还学得动么(下)本篇小编建议小伙们从第一篇开始&#xff0c;按照顺序来看&#xff0c;更清…

测试社交软件有哪些,性格测试:测你适合哪个社交平台

你喜欢通过什么方式和人交流&#xff1f;随着网络世界越来越发达&#xff0c;人们越来越倾向于使用社交工具来维系与家人、朋友、同事之间的关系。不但在现实生活中不好直接表达出来的话通过网上交流的方式可以顺畅地表达出来&#xff0c;而且也节约了时间上的成本&#xff0c;…

VS2012无法安装cocos2d-x-2.1.4 解决方法及VS2012新建coco2d-x项目(一)

转自&#xff1a;http://www.cnblogs.com/wangpei/admin/EditPosts.aspx?opt1 &#xff08;注&#xff1a;此方法是可行&#xff0c;仅供参考&#xff0c;建议大家直接看我的 一见命令解决vs安装并创建cocos2d-x&#xff0c;如果你习惯了和以前一样在vs点击创建就用这个方法&a…

JMS 2.0中JMSContext的类型

如果您遵循Java EE&#xff0c;您将不会知道JMS 2.0&#xff08;Java EE 7&#xff09;中的简化API组件。 构成简化API一部分的重要接口之一是javax.jms.JMSContext接口。 根据实例的获取和管理方式&#xff08;生命周期&#xff09;&#xff0c;JMSContext可以分为两种类型&a…

excelexportentity中设置null不显示的方法_一般人不知道的线程间数据交换Exchanger

线程间的数据共享除了定义一个共享数据然后各个线程去访问这种方式外&#xff0c;还可以使用Exchanger交换数据。简单案例首先看看Exchanger的运用&#xff0c;Exchanger最简单的测试代码&#xff0c;如下图&#xff1a;对应打印的结果如下&#xff1a;线程2创建对象java.lang.…

画毛毛虫代码计算机图形学,考试计算机图形学考试计算机图形学.docx

考试计算机图形学考试计算机图形学计算机图形学大题第四章1个。第六章2个第七章1个第一章4、比较个人计算机与工作站的图形功能个人计算机仅限于符合二维&#xff0c;又是单任务操作方式工作站可处理二、三维&#xff0c;多任务操作方式区别个人计算机工作站显示分别率640 X 48…