美团Mario接口自动化测试框架设计-HTTP/MAPI/Thrift/Pigeon协议的支持与实践,主要针对的是服务端自动化测试,支持HTTP、MAPI、Thrift和Pigeon等协议的接口测试。这个框架具有轻量级、配置灵活、使用简单等特点,适合各种测试环境。它将测试用例和数据分离,使得同一套测试用例可以在不同的环境中使用不同的测试数据。测试数据可以通过JSON文件或数据库进行管理,并支持JSON Schema、JSONPath等结果校验工具。 在测试过程中,Mario使用了Thrift、Pigeon协议,并通过注解配置进行初始化,这大大提高了测试开发的效率。同时,Mario还提供一键生成测试项目的功能,保证了统一的测试项目结构。测试执行的流程包括环境配置、测试用例层、数据解析、请求发送、数据上报、结果校验等步骤。 为了保证测试的规范性和统一性,Mario制定了严格的测试用例开发规范,包括测试用例必须有校验、统一结构、相互独立、独立HTTP code校验等规则。同时,Mario还要求测试代码不要太复杂,要保证用例的持续执行,并提供清晰的readme文件和统一的.gitignore配置,避免上传IDE相关文件和编译结果。 在仓库命名和开发规范上,Mario要求使用业务名称-test进行分支开发,并在PR review后合并到主分支。被测服务仓库名称为-test,并接入持续交付目录。此外,Mario还提供了一个专门的测试项目模板,使用测试数据(JSON和DB)进行环境配置。 为了更好地管理和维护测试数据,Mario支持JSON数据管理和使用JSONPath进行结果校验。它还提供了数据操作工具包,包括登录、数据操作等工具,从而提高测试开发的效率。 为了实现更高效的测试执行,Mario使用了一些主流的技术和工具,如JSONPath、TestNG、Maven、Retrofit 2.0等。在测试执行流程图中,Mario描述了从启动测试执行代码到结束的整个流程,包括BeforeSuite、JSON结果测试、BeforeMethod、环境配置初始化、结果插件统计框架数据、测试用例执行、测试结果统计等步骤。 为了确保测试的持续性和反馈,Mario还提供了用户反馈的链接,方便用户提出问题和建议。此外,Mario还提供了一个测试项目生成的工具,通过Archetype生成标准的测试项目结构,方便用户快速搭建测试环境。 美团Mario接口自动化测试框架是一个高效、灵活且易于使用的自动化测试工具,能够满足不同协议接口的自动化测试需求,同时提供了一套完整的测试规范和开发流程,大大提高了测试开发的效率和质量。
2026-01-25 13:42:30 8.15MB 自动化测试框架 Mario API测试 持续集成
1
在IT行业中,Thrift是一种高性能、可扩展的跨语言服务开发框架,由Facebook开源,现由Apache基金会维护。Thrift的主要目标是通过定义一种中间表示(IDL,接口定义语言)来构建可序列化数据结构和服务接口,使得不同编程语言之间可以进行高效、透明的通信。在本Java实现Thrift的Demo中,我们将深入理解Thrift的工作原理以及如何使用Java来实现它。 让我们了解Thrift的基本工作流程: 1. **接口定义**:使用Thrift IDL编写服务接口和数据类型。例如,你可以创建一个名为`Calculator`的服务,其中包含加、减、乘、除等方法,以及对应的请求和响应数据结构。 ```thrift service Calculator { i32 add(1:i32 num1, 2:i32 num2), i32 subtract(1:i32 num1, 2:i32 num2), i32 multiply(1:i32 num1, 2:i32 num2), i32 divide(1:i32 num1, 2:i32 num2) } ``` 2. **代码生成**:使用Thrift编译器将IDL文件转换为各种目标语言的源代码,包括Java。这会生成服务接口类(如`Calculator.java`)、协议处理类以及数据结构类。 3. **服务实现**:在Java中,你需要实现生成的服务接口。例如,创建一个`CalculatorServer`类,其中包含`Calculator`服务的所有方法的实现。 ```java public class CalculatorServer implements Calculator.Iface { @Override public int add(int num1, int num2) { return num1 + num2; } // 实现其他方法... } ``` 4. **服务器启动**:创建一个服务器实例,绑定到特定端口,并启动服务。通常会使用`TServer`抽象类的一个实现,如`TSimpleServer`或`TForkingServer`。 ```java TServerTransport serverTransport = new TServerSocket(9090); Calculator.Processor processor = new Calculator.Processor<>(new CalculatorServer()); TServer server = new TSimpleServer(serverTransport, processor); server.serve(); ``` 5. **客户端生成**:Thrift编译器同样会为客户端生成必要的代码。客户端可以使用这些类来创建服务的代理对象,与服务器进行通信。 6. **客户端调用**:在客户端代码中,创建一个`Calculator.Client`实例,连接到服务器,然后调用服务方法。 ```java TTransport transport = new TSocket("localhost", 9090); TProtocol protocol = new TBinaryProtocol(transport); Calculator.Client client = new Calculator.Client(protocol); transport.open(); int result = client.add(10, 20); transport.close(); System.out.println("Result: " + result); ``` 这个Java实现的Thrift Demo展示了如何利用Thrift进行跨语言通信。Thrift提供了一种高效的二进制序列化格式,使得数据在网络传输中占用更少的带宽,同时提供了丰富的服务接口定义,简化了多语言服务的开发。通过这种方式,开发者可以轻松地构建分布式系统,实现服务之间的高效通信。在实际应用中,Thrift常用于构建微服务架构,因为它能够很好地处理大规模、高性能的服务间通信需求。
2025-05-20 20:16:53 719KB java
1
压缩包分为三个部分,java工程(java的服务方,和java客户端) php工程,php的客户端 linux环境的服务方部署包以及脚本 其中myserver.tar.gz压缩包是linux环境的部署包, 在linux环境先解压, tar -zxvf myserver.tar.gz ./ 启动的时候进入 myserver/mysh/目录 然后运行 restart_thrift.sh 脚本就可以直接启动 ps 一下进程是否正常,如果错误请查看日志 然后就可以使用线下的php直接调用, 代码是从网上找到的,比较容易入门 当然也可以直接导入java目录下的java工程,直接运行服务端更简单
2023-11-22 09:05:59 6.96MB thrift java
1
一个例子c++php通讯的thrift例子。使用了facebook的thrift。学习一下。
2023-10-20 09:06:37 43KB thrift c++ php
1
Thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发。它结合了功能强大的软件堆栈和代码生成引擎,以构建在 C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, and OCaml 等等编程语言间无缝结合的、高效的服务。 Thrift最初由facebook开发,07年四月开放源码,08年5月进入apache孵化器。thrift允许你定义一个简单的定义文件中的数据类型和服务接口。以作为输入文件,编译器生成代码用来方便地生成RPC客户端和服务器通信的无缝跨编程语言。 官网地址:thrift.apache.org
2023-04-03 10:53:47 5.38MB thrift0.10 windows
1
thrift应用, c#实现,代码简洁清晰,一看就会。。。分布式技术必掌握之一
2023-03-30 13:01:21 460KB thrift .net csharp c#
1
包含boost、libevent、openssl、zlib、msys、perl等。 windows下使用MinGW编译thrift方法: https://blog.csdn.net/xzhswust/article/details/126914014 windows下使用VS2015编译thrift方法: https://blog.csdn.net/xzhswust/article/details/126915345
2022-12-13 14:10:13 144.12MB thrift
1
linux下呕心沥血的安装和测试thrift,真诚感谢整个过程中的各位帖主。
2022-11-09 18:40:51 2.12MB linux; thrift
1
libthrift.lib libthriftnb.lib
2022-07-29 10:02:51 6.08MB thrift libthrift.lib libthriftnb.lib
1
该文件thrift-0.9.2编译生成库,可直接使用,libthrift-0.9.2.so这个也需要
2022-07-29 09:59:55 3.85MB lib thrift
1