Application services often support mobile and web applications with REST interfaces, implemented using a set of distributed components that interact with each other. This approach allows services to have high availability and performance at a lower cost than a monolithic system. However, the existence of multiple components makes the development process of these systems more complex and therefore susceptible to errors. In this paper, we present JepREST, a system that automates the use of Jepsen libraries to test the correctness of distributed applications that provide a REST interface. Based on a service interface specification, JepREST generates and executes a set of tests with multiple clients performing operations concurrently, subsequently verifying if the system behaviour is linearizable. The preliminary evaluation shows that JepREST simplifies the testing of REST applications.
翻译:应用服务通常使用 REST 接口为移动和 Web 应用程序提供支持,使用一组分布式组件实现相互交互。这种方法使服务具有高可用性和性能,成本低于单块系统。然而,多组件的存在使得这些系统的开发过程更加复杂,因此容易出现错误。本文介绍了 JepREST,一个系统,它自动化了使用 Jepsen 库测试提供 REST 接口的分布式应用程序的正确性。基于服务接口规范,JepREST 生成和执行一组测试,其中多个客户端同时执行操作,随后验证系统的行为是否可线性化。初步评估表明,JepREST 简化了 REST 应用程序的测试。