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应用的测试过程。