北大青鸟设计培训:如何提高java编程项目的测试性?

如题所述

软件测试是随着软件编程开发项目的推进而被逐渐提上日程的一项工作。
今天,运城电脑培训http://www.kmbdqn.cn/就从以下几方面来了解一下如何提高java编程的测试性的问题。
在企业测试中,测试软件的方式应该与软件在生产环境中运行的方式相同,以便确保软件能够按预期的方式运行。
常见的挑战是微服务应用程序直接或间接依赖需要在测试场景中编排的其他服务。
测试场景假设我们想要在不考虑其他外部服务的情况下测试应用程序的行为。
应用程序的运行方式和配置方式应该与生产环境相同,以便确保以后它在生产环境中的行为是一致的。
在测试中,我们将使用定义好的通信接口连接应用程序。
但是,外部服务不应成为测试场景的一部分。
通常,在测试时我们应该关注被测试的对象,并忽略掉其他对象。
因此,我们使用模拟服务器来替代外部服务。
容器编排使用模拟服务器而不是真实实例与以与生产环境相同的方式运行微服务的想法相矛盾,因为到了生产环境配置会发生改变。
但是,如果我们的应用程序部署到容器编排集群(例如Kubernetes),就可以将抽象的服务名称用作配置,并让集群自己去解析后端服务实例。
在测试场景中,不仅会连接到应用程序来调用业务逻辑,还会与模拟服务器发生通信,在单独的管理界面上控制响应行为,并验证应用程序是否以正确的方式调用模拟服务器。
这与类级别的单元测试类似,通常使用JUnit和Mockito实现。
外部服务上述的设置可以让我们模拟和控制在容器编排集群内运行的服务。
那么那些在集群之外的外部服务该怎么办呢?通常,我们可以创建一个不带有选择器的Kubernetes服务,让它指向一个外部IP,并重写我们的应用程序,让它始终使用由群集解析的服务名。
这样一来,我们定义了一个单一的点,服务将被路由到这个点上。
服务网格服务网格能够帮助我们处理微服务间的通信问题。
目前,Istio是常用的服务网格技术之一。
它增加了与应用程序容器共存的边车代理容器,可以解决微服务间的通信问题,并且还可以用来操纵或减慢连接,以便进行弹性测试。

温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜