我们正处于一个信息大暴发的时代,每天都能产生数以百万计的新闻资讯!
虽然有大数据推荐,但面对海量数据,通过我们的调研发现,在一个小时的时间里,您通常无法真正有效地获取您感兴趣的资讯!
头条新闻资讯订阅,旨在帮助您收集感兴趣的资讯内容,并且在第一时间通知到您。可以有效节约您获取资讯的时间,避免错过一些关键信息。
演示了如何使用Java API创建和运行第一个Dubbo接口自动化测试用例。
01
使用Java API
由于本节需要使用到Java,因此笔者首先创建了一个新的Maven工程mastering-test-automation-for-dubbo。然后修改工程的pom.xml文件引入相关依赖,依赖如下:
以上配置中,dubbo是Dubbo框架的基础依赖,dubbo-configcenter-zookeeper是Dubbo Zookeeper注册中心的依赖,而ims-api是IMS的Dubbo接口。
待依赖下载完成后,读者可以先熟悉一下IMS的Dubbo接口源代码。其中,只有GoodsCategoryService(物品类别)、GoodsService(物品)和UserService(用户)3个简单的接口,如图3-4所示。
■ 图3-4IMS的Dubbo接口
接着笔者以测试GoodsService接口的getById方法为例介绍Dubbo接口的测试,该方法用于根据物品ID获取物品。为此先在/src/test/java目录创建com.lujiatao.dubbo包,并新增JavaAPI类。
说明/
根据Maven工程的规范,测试代码应该存放在/src/test/java目录,非测试代码应该存放在/src/main/java目录。
使用Java API测试Dubbo接口可以看作是模拟一个服务消费者来调用服务提供者提供的Dubbo接口,而服务消费者本质上属于一个应用程序,因此首先需要配置该应用程序。在Dubbo中,使用ApplicationConfig类来配置应用程序的代码如下:
ApplicationConfig applicationConfig = newApplicationConfig;
applicationConfig.setName( "JavaAPI");
以上代码将应用程序的名称配置为JavaAPI。
然后需要配置注册中心。为了防止超时,笔者将超时时间设置为10s(10000ms),代码如下:
RegistryConfig registryConfig = newRegistryConfig;
registryConfig.setTimeout( 10000);
registryConfig.setAddress( "zookeeper://192.168.3.102:10003");
由于IMS使用ZooKeeper作为注册中心,因此以上代码使用了zookeeper作为注册中心地址的前缀,而192.168.3.102和10003是笔者搭建的注册中心IP地址和端口,读者应根据实际情况进行替换。
接着创建Dubbo接口引用的环节,需要使用到ReferenceConfig类,代码如下:
ReferenceConfig
referenceConfig.setApplication(applicationConfig);
referenceConfig.setRegistry(registryConfig);
referenceConfig.setInterface(GoodsService.class);
referenceConfig.setVersion( "1.0.0");
ReferenceConfig是一个泛型类,由于这里要测试GoodsService接口,因此将GoodsService作为类型形参传递给ReferenceConfig。另外需要使用之前创建的应用程序和注册中心配置,并且还需要设置接口及其版本号。
最后调用ReferenceConfig对象的get方法获取到目标接口GoodsService,然后调用其中的getById方法,代码如下:
GoodsService goodsService = referenceConfig. get;
Goods goods = goodsService.getById( 1);
Gson gson = newGsonBuilder.create;
System. out.println(gson.toJson(goods));
以上代码使用到了Gson,其用于将对象序列化为JSON。
运行JavaAPI类,执行结果如下:
{ "id": 1, "brand": "HUAWEI", "model": "Mate 40", "desc": "", "count": 0, "goodsCategoryId": 1, "createTime": "2021-05-19 08:51:14", "updateTime": "2021-05-19 08:51:14"}
由于IMS每次启动时会重新初始化数据库,因此读者看到的createTime和updateTime会与上述结果不一致。
有时出于测试目的,希望绕开注册中心直接调用Dubbo接口,这种方式被称为点对点直连。点对点直接需要删除配置注册中心的代码,并调用ReferenceConfig对象的setUrl方法设置直连URL即可。
【例3-4】Dubbo接口的点对点直接。
不管是使用注册中心还是点对点直连方式,当调用了Dubbo接口后,就可以使用单元测试框架编写自动化测试用例了。Java中的单元测试框架有TestNG、JUnit等。
实例讲解
自动化测试项目实战
从入门到精通(微课视频版)
精彩回顾
第一个unittest示例
演示了如何使用unittest创建和运行第一个单元自动化测试用例。
第一个pytest示例
演示了如何使用pytest创建和运行第一个单元自动化测试用例。
简单请求和响应
演示了如何使用Requests创建和运行第一个HTTP接口自动化测试用例。
下期预告
打开浏览器
演示了如何使用Selenium创建和运行第一个Web自动化测试用例。
打开待测应用程序
演示了如何使用Appium创建和运行第一个App自动化测试用例。
编写简单测试用例
以实际项目为依托,介绍如何编写一个简单的自动化测试用例。
将公共部分封装为函数
介绍如何将公共部分封装为函数,这是使用模块化来优化自动化测试用例的一种方法。
搭建Python私有仓库
介绍如何搭建一个Python私有仓库,以便使用函数库的方式来优化自动化测试用例。
使用Excel作为数据源
介绍如何使用Excel作为数据源进行数据驱动测试。
变量和常量
介绍关键字驱动测试框架Robot Framework中的变量和常量的用法。
自定义匹配器
介绍第三方断言函数库PyHamcrest的自定义匹配器功能。
02
参考书籍
书名:自动化测试项目实战——从入门到精通(微课视频版)
⇡ ⇡ ⇡ 点击上图查看更多图书信息 ⇡ ⇡ ⇡
本书特色
(1) 理论与实战案例结合。知识脉络全面、清晰,学习路线明确,案例丰富,便于读者学习知识点。
(2) 内容合理,循序递进。提供基础篇、进阶篇、实战篇的内容,以满足不同层次读者的需求。
(3) 视频讲解,强化实操。为第7章中项目案例实操部分配备微课视频讲解,便于读者理解、学习和掌握。返回搜狐,查看更多
责任编辑:
以上内容为资讯信息快照,由td.fyun.cc爬虫进行采集并收录,本站未对信息做任何修改,信息内容不代表本站立场。
快照生成时间:2023-02-04 11:45:13
本站信息快照查询为非营利公共服务,如有侵权请联系我们进行删除。
信息原文地址: