• 我的订阅
  • 科技

自动化测试项目实战 | 使用Java API

类别:科技 发布时间:2023-02-04 10:00:00 来源:书圈
自动化测试项目实战 | 使用Java API

演示了如何使用Java API创建和运行第一个Dubbo接口自动化测试用例。

01

使用Java API

由于本节需要使用到Java,因此笔者首先创建了一个新的Maven工程mastering-test-automation-for-dubbo。然后修改工程的pom.xml文件引入相关依赖,依赖如下:

自动化测试项目实战 | 使用Java API

以上配置中,dubbo是Dubbo框架的基础依赖,dubbo-configcenter-zookeeper是Dubbo Zookeeper注册中心的依赖,而ims-api是IMS的Dubbo接口。

待依赖下载完成后,读者可以先熟悉一下IMS的Dubbo接口源代码。其中,只有GoodsCategoryService(物品类别)、GoodsService(物品)和UserService(用户)3个简单的接口,如图3-4所示。

自动化测试项目实战 | 使用Java API

■ 图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 = newReferenceConfig<>;

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接口的点对点直接。

自动化测试项目实战 | 使用Java API
自动化测试项目实战 | 使用Java API

不管是使用注册中心还是点对点直连方式,当调用了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

本站信息快照查询为非营利公共服务,如有侵权请联系我们进行删除。

信息原文地址:

自动化测试项目实战 | 打开浏览器
演示了如何使用Selenium创建和运行第一个Web自动化测试用例。01打开浏览器要使用Selenium打开浏览器,就需要安装对应编程语言的客户端
2023-02-05 10:00:00
可超高频,可降延迟!金百达银爵DDR5内存ZEN4平台超频实战!
一、AMD也超频INTEL发布12代酷睿之后,DDR5内存开始崭露头角,更高的频率和带宽,带来了性能的极大提升。AMD奋起直追
2022-12-21 06:00
...持振感的动态静态调节。支持触觉控制的开关。测试框架自动化测试框架arkxtest支持模拟鼠标滚轮滑动、滑动左右键双击等模拟UI操作能力。支持Shell命令方式进行UI模拟操作
2024-01-01 09:33:00
无人机企业引爆低空经济革命,卓翼智能2024Q1行动揭秘
...轻型消防车底盘设计,集成系留供电系统、CAFS、无人机自动化起降放舱、储液箱,整车通过性更高,现场展开迅速,具备独立作业能力,所有系统集成在综合消防保障车内,无需额外配置。无
2024-04-11 17:00:00
...算机科学、信息科学、大数据、电子、信息与通信工程、自动化、人工智能、软件工程、数学、物理、光学、声学、材料、机械、自动控制等相关专业
2023-06-19 14:00:00
华为云codeartsapimock发布三大特性
...eArtsAPIMock支撑业务产品的快速持续交付与微服务模式下的自动化测试构建能力,快速构建8个Mock实例、60多个模拟接口
2023-10-14 03:38:00
浪潮海岳测试平台inTest 1.0正式发布
...平台inTest1.0,涵盖测试管理、代码审查、精准测试、接口自动化测试、UI自动化测试、性能测试、性能基线、安全测试八大模块
2024-01-08 18:33:00
格雷希尔GripSeal和集成商们的托盘式生产组合连接方案
...,以及托盘侧C9对接模块(或是对接板),实现高寿命的自动化连接。托盘到达对应测试工位,设备侧推动C9对接模块(或是对接板)实现1秒连接,包含水气/动力电/高压电/低压/信号等
2023-01-03 15:02:00
山东信息职业技术学院再获高职国赛一等奖
...台系统为被测对象,从环境搭建、单元测试、功能测试、自动化测试、性能测试、接口测试、测试文档等七个方面综合考察选手在软件测试领域的专业技能。比赛涉及内容广、综合性强、难度大,充
2023-07-13 19:00:00
更多关于科技的资讯: