远程桌面服务怎么测试_快速的远程服务测试

远程桌面服务怎么测试

测试与远程服务交互的代码通常非常困难。 有很多折衷因素会影响您可以编写哪些测试以及要编写的测试数量。 在大多数情况下,您对从服务中获取的数据的控制为零,这使得断言至少很难说。

不久前,我使用VCR库针对远程服务编写了一些Ruby测试。 VCR解决了上述问题。 它记录了测试套件的HTTP交互,以便在以后的运行中重播它们。 快速和可重复的测试是显而易见的好处。

这个星期,我想知道Java是否也是如此。 事实证明,有Betamax可以做到这一点。 实际上,Betamax是VCR的Groovy端口,可以与任何JVM语言一起使用。

Betamax在您和目标主机之间安装代理,在tape上记录每个请求和响应,并为已知请求重放tape 。 它适用于任何遵循Java代理设置的HTTP客户端,也适用于诸如Apache HttpClient和WSLite之类的不兼容Java代理设置的客户端。

在JUnit测试中,可以将Betamax用作方法级的TestRule 。 在应该记录和重放的每个测试方法上,您都放置了@Betamax记录器并设置了磁带。

考虑下面的示例,其中我使用Spotify Metadata API来获得艺术家的欢迎。 在此示例中,我使用Apache HttpClient库并将其配置为Betamax。

public class SpotifyTest {@Rule public final Recorder recorder = new Recorder();private final DefaultHttpClient http = new DefaultHttpClient();@Betamax(tape = "fixtures/popularity")@Testpublic void get_popularity() throws Exception {Spotify spotify = new Spotify(http);assertThat(spotify.popularity("The Beatles"), is(.55f));}@Beforepublic void setUp() throws Exception {BetamaxRoutePlanner.configure(http);}
}

在编写此代码时,甲壳虫乐队的流行度为.55,但由于此数字基于用户的意见,因此很有可能会发生变化。 使用Betamax磁带将获得相同的响应(只要请求不变),并允许声明0.55以使其受欢迎。

HTTPS

正如我向您展示的那样,Betamax使用代理或包装器类正确记录并重放任何HTTP通信(如示例中所示)。 还支持HTTPS,但是当您在基于代理的设置中使用Betamax时,HTTPS可能会更有趣。 使用包装器可以正常工作。

HTTPS和基于代理的设置的问题显然是代理无法在标准HTTPS通信中拦截数据。 这就是我们信任HTTPS的原因。

Betamax可以解决这个问题。 您可以在Betamax Recorder上启用sslSupport 。 如果您的客户端代码可以使用SSL证书链断开了,则可以进行此工作。

同样,当您使用基于代理的设置时,这实际上只是一个问题。 使用客户端包装程序可以直接在API调用上启用Betamax,从而简化HTTPS通信。

自己尝试

Betamax可以帮助您为远程服务的客户端编写快速且可重复的单元测试。 对我最有益的是,由于消除了远程通信,因此测试速度非常快。 断言特定的值可能会有所帮助,尽管我个人比较喜欢这些测试的基于属性的样式(例如,流行度必须为> = 0和<= 5的数字)。

下次您与远程服务进行交互时,请尝试Betamax。

参考: Software Craft博客上的JCG合作伙伴 Bart Bakker提供的快速远程服务测试 。

翻译自: https://www.javacodegeeks.com/2014/03/fast-remote-service-tests.html

远程桌面服务怎么测试

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

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

相关文章

linux 编译src.rpm,CentOS6.5下编译src.rpm包的内核

CentOS6.5原生内核版本是Linux 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux在网上下载对应版本的src.rpm包&#xff1a;kernel-2.6.32-431.el6.src.rpmhttp://rpm.pbone.net/index.php3/stat/4/idpl/24668468/dir/scientific_l…

Apache Payara:让我们加密

不久前&#xff0c;我写了一个小教程 &#xff0c;介绍如何生成“让我们加密SSL”证书并将其安装在Glassfish Java EE平台上。 这个技巧对我来说是一个奇迹&#xff0c;但是每三个月必须手动更新和重新安装证书变得很烦人。 我做了一些研究&#xff0c;并且与第一个教程一样&a…

linux命令 dstat,关于linux:每天学一个-Linux-命令103dstat

命令简介dstat 命令是一个用来替换 vmstat、iostat、netstat、nfsstat 和 ifstat 这些命令的工具&#xff0c;通用的系统资源统计工具&#xff0c;是一个全能零碎信息统计工具。[rootcentos7 ~]# dstat-bash: dstat: command not found[rootcentos7 ~]# yum install dstat -yds…

openssh arm linux 编译,openssh编译安装到ARM嵌入式系统中

目录一&#xff0e;SSHD编译(此步骤在虚拟机上执行)1.1 在/root/目录下创建ssh目录1.2 交叉编译zlib1.3交叉编译openssl1.4交叉编译openssh二&#xff0e;移植(此步骤在开发板上执行)2.1 在开发板上建立需要的目录2.2 下面是在开发板上操作2.3修改sshd_config三、加入自启动脚本…

反射xss 测试地址_使用反射进行测试

反射xss 测试地址根据我以前的帖子&#xff0c;我正在撰写有关“单一责任原则”的演讲。 我花了大部分时间。 同时&#xff0c;我想分享一个示例代码&#xff0c;说明如何在类中测试内部字段。 我这样做是为了进行特殊的测试&#xff0c;这更多的是集成测试。 在依赖类的标准单…

Spring Boot休眠提示

1.概述 Hibernate不需要介绍。 它是Java中最受欢迎的ORM。 同样&#xff0c;Spring Boot是目前最强大&#xff0c;最易于使用的Java框架。 本教程与Hibernate或Spring Boot无关&#xff0c;其中有大量的内容。 我们将研究在将它们一起使用时可能会遇到的一些常见错误以及如何…

linux自动挂载fcoe存储,在sdb上挂载USB 设备

在主机上挂载 USB 设备后我们查看系统当前磁盘设备&#xff1a;1. [rootFCoE ~]# fdisk -l2.3. Disk /dev/sda: 43.0 GB, 42991616000 bytes4. 255 heads, 63 sectors/track, 5226 cylinders5. Units cylinders of 16065 * 512 8225280 bytes6. Sector size (logical/physica…

linux gui编程语言,使用 Red 语言编写 GUI 应用程序

一句话概括 — 使用 Red 语言编写原生跨平台桌面 GUI。尝试在 Windows 上使用 PyInstaller 将“可执行”的 ducktape 封装在 Python 脚本之后&#xff0c;我发现应该学习的编程语言类应该具有以下属性&#xff1a;静态二进制编译(产生一个二进制&#xff0c;不是运行时的字节码…

java 开发人员工具_Java开发人员的5种工具

java 开发人员工具改善我们编写的Java代码的一种方法是使用最好的工具。 因此&#xff0c;让我们看看IDR Solutions建议使用的5种最常用的工具来帮助Java开发人员编写更好的代码。 查找错误 FindBugs是一个开放源代码程序&#xff0c;根据Lesser GNU Public许可的条款进行分发…

64位linux并行计算大气模型效率优化研究,64位Linux并行计算大气模型效率优化研究...

第&#xff12;&#xff16;卷第&#xff16;期&#xff12;&#xff10;&#xff10;&#xff19;年&#xff16;月计算机应用研究&#xff21;&#xff50;&#xff50;&#xff4c;&#xff49;&#xff43;&#xff41;&#xff54;&#xff49;&#xff4f;&#xff4e;&a…

J2Pay –实施网关

介绍 如果您使用任何网关&#xff0c;您都可以在我们的库中实现该网关并支持开放源代码世界&#xff0c;我们将非常高兴地欢迎贡献者。 您可以在这里找到我们的github存储库 在开始实现网关之前&#xff0c;您应该首先看到其他一些类。 以下是简要定义的类。 HTTP客户端 使…

linux中jq的使用方法,linux使用jq工具解析json

jq类似一个awk或grep一样的神器&#xff0c;可以方便地在命令行操作json一、安装官网&#xff1a;https://stedolan.github.io/jq/download/基本就是brew install、apt install、yum install之类的&#xff0c;很简单二、常用操作1.格式化json直接请求格式如下&#xff0c;不易…

linux手机摩托,Linux操作系统触控智能机 摩托ZN4图赏

北京时间2008年11月25日&#xff0c;有国外的网友拿到由通信运营商Verizon Wireless定制的摩托罗拉ZN4真机。摩托罗拉ZN4的发布已经过了一个多月了&#xff0c;网友们对于这款手机的评论可谓是褒贬不一。有的朋友们指出摩托罗拉ZN4在造型上面抄袭了经典“明”系列设计&#xff…

Apache Camel 2.23发布

昨天发布了Apache Camel 2.23 &#xff0c;其中最值得注意的新功能是对Spring Boot 2.1的支持&#xff0c;我们还改进了启动器组件以包括更多的元数据&#xff0c;并对改进的Spring Boot自动配置进行了优化。 此版本主要是一个大的错误修复版本和一些其他小的新增功能。 这些功…

对c语言字符数组描述错误的是,下述对C语言字符数组的描述中错误的是( )。

摘要&#xff1a;条形图用频率值型来表分组分布示数数据&#xff0c;下述没有相邻之间间隔竖条。中国:在中大学列联分析&#xff0c;字符百分表的条件正确关于的是方向说法。条形图用频率值型来表分组分布示数数据&#xff0c;数组述中没有相邻之间间隔竖条。...条形图用频率值…

android 实现自动拍照,Android自定义相机实现定时拍照功能

这篇博客为大家介绍Android自定义相机&#xff0c;并且实现倒计时拍照功能。首先自定义拍照会用到SurfaceView控件显示照片的预览区域&#xff0c;以下是布局文件&#xff1a;activity_main.xmlandroid:layout_width"match_parent"android:layout_height"match_…

10个步骤的筛选器模式

过滤器是仅在某些情况下应应用的模式。 在原始帖子中 &#xff0c;我提供了一个非常简单的示例&#xff0c;旨在演示如何应用它。 在这篇文章中&#xff0c;我提供了一个更详细的示例&#xff0c;该示例还旨在说明何时以及为什么应用它。 介绍 该职位包括以下10个简短步骤 。…

android 网络调试工具,安卓网络调试助手

安卓网络调试助手源码是一款专门为专业人士准备的安卓网络调试软件&#xff0c;安卓网络调试助手apk支持各种进制的转换发生和多种端口协议&#xff0c;让用户操作起来更加方便&#xff0c;安卓网络调试助手源码有着专业的操作流程&#xff0c;帮助用户快速上手&#xff0c;就算…

android版本8.1.0和9的区别,安卓8.1和9.0的区别是什么

安卓8.1和9.0的主要差别是&#xff1a;流畅度、耗电量、功能等等方面的不同。在手机配置足够的情况下&#xff0c;9.0要比8.1更流畅和省电&#xff0c;它可以同时让后台保持更多APP&#xff0c;每个APP运行的时候更加流畅&#xff0c;其新的智能电量管理功能、暗黑模式让手机更…

看到一个沙粒世界:再一次你好世界

“看到一个沙粒中的世界”&#xff0c;我们很可能会看到最简单的“ Hello World”中的世界&#xff0c;所以我们开始吧&#xff0c;再一次向世界问好。 我猜所有的Java课程&#xff0c;教程都是从这个著名的Hello World程序开始的&#xff0c;这是我可以在没有IDE的帮助下编写…