美文网首页
一个grpc服务测试脚本工具(Python)

一个grpc服务测试脚本工具(Python)

作者: Lrish_ss | 来源:发表于2018-03-13 16:41 被阅读0次

根据实际业务需要,写了一个方便测试grpc服务的脚本工具。
思路是 如果进行服务的自动化测试,首先需要写出一个通用性的grpc_client调用方法。然后设计测试用例传参即可。

import grpc
import time

def common(service_dependence, request, _response, server='0.0.0.0:7000', **kwargs):
    # proto生成两个python文件:pd2_grpc结尾的service_stub的文件和pd2结尾的服务定义的文件
    pb2_grpc = service_dependence['pb2_grpc']
    # pb2_grpc_func 是生成stub对象的方法
    pb2_grpc_func = service_dependence['pb2_grpc_func']
    pb2 = service_dependence['pb2']
    # pb2_func 是关联服务中方法和请求参数的方法
    pb2_func = service_dependence['pb2_func']

    # 引用proto生成的两个文件
    import_pb2_grpc = 'import ' + pb2_grpc
    import_pb2 = 'import ' + pb2
    exec(import_pb2_grpc)
    exec(import_pb2)

    # 通用调用
    grpc_stub = pb2_grpc + '.' + pb2_grpc_func
    grpc_request = pb2 + '.' + pb2_func
    channel = grpc.insecure_channel(server)
    stub = eval(grpc_stub)(channel)
    start_time = time.time()
    response = eval("stub." + request)(eval(grpc_request)(**kwargs))
    end_time = time.time()
    # 服务耗时:以毫秒为单位
    elapsed = str(round((end_time - start_time)*1000, 3)) + 'ms'
    # 主要返回内容:如果方法的返回字段不能统一,也可以考虑传入一个返回字段的列表,把此处改写
    content = response.error_msg if response.code else eval("response." + _response)
    return response.code, content, elapsed

参考内容:https://github.com/grpc/grpc/tree/master/examples/python

相关文章

  • 一个grpc服务测试脚本工具(Python)

    根据实际业务需要,写了一个方便测试grpc服务的脚本工具。思路是 如果进行服务的自动化测试,首先需要写出一个通用性...

  • gRPC之python

    安装 安装grpc 安装python grpc的protobuf的编译工具 安装protobuf的python依赖...

  • zookeeper-测试

    python脚本测试 压测 1.运行一个zk的压力测试容器 2.编辑配置文件 3.运行测试工具 robot脚本

  • 自从学会Locust压测框架,发现手里的Jmeter再也不香了

    Locust是一个python的性能测试工具,你可以通过写python脚本的方式来对web接口进行负载测试。 01...

  • Python Locust性能测试框架实践

    Locust的介绍 Locust是一个python的性能测试工具,你可以通过写python脚本的方式来对web接口...

  • 学习笔记《Socks 5》

    项目有很多家接口服务,只在测试服务器上开了白名单,无法在本地进行测试,所以用了一个 python 脚本,可以直接在...

  • PerfQA Analyzer测试(四)--生成测试脚本

    PerfQA Analyzer测试(四)--生成测试脚本 Script 工具可以自动生成测试脚本,并支持将测试脚本...

  • pyinstaller的使用

    pyinstaller简介 pyinstaller是一个常用的python脚本打包工具,可以将python脚本打包...

  • Python学习(1)

    python的特点 优雅,明确,简单 Python适合的领域 Web网站和各种网络服务 系统工具和脚本 作为“胶水...

  • Python学习

    Python特点 优雅 明确 简单 Python适合领域 web网站和各种网络服务 系统工具和脚本 作为“胶水”语...

网友评论

      本文标题:一个grpc服务测试脚本工具(Python)

      本文链接:https://www.haomeiwen.com/subject/wuszfftx.html