Dubbo 接口自动化测试框架

发布时间 2023-04-14 17:50:41作者: 新入世界的小白

一、核心模块及基础服务类封装

  1、核心模块介绍

  

  2、基础服务类封装设计

    

    1、创建一个基础服务类(base_service.py)

from dubboclient import DubboClient

class BaseService(object):
    def __init__(self):
        self.dubbo_client = DubboClient("211.103.136.244",6502)

    2、服务对象封装

      会员服务类(新建member_service.py)

#导包
import json

from base_service import BaseService

class MemberService(BaseService):
    #重写(扩展式)
    def __init__(self):
        super().__init__()    #继承父类
        self.service_name = "MemberService"    #服务名,多个方法使用
        
    #封装服务类下面的方法
    
    def find_by_telephone(self,tel):
        resp = self.dubbo_client.invoke(self.service_name,"findByTelephone",tel)
        if resp == "null":
            return None
        else:
            #将string类型的数据还原成 字典 或 列表数据
            return json.loads(resp)
        
    def find_member_count_by_months(self,months):
        resp = self.dubbo_client.invoke(self.service_name,"findMemberCountByMonths",months)
        return json.loads(resp)
    
    def add(self,info):               #自定义类型数据
        '''
        info:代表用户传入的测试数据,此时没有class元素
        :return: 
        '''
        #此时自己添加info的 class 类
        info["class"] = "com.itheima.pojo.Member"
        resp = self.dubbo_client.invoke(self.service_name,"add",info)
        if resp == "null":
            return True
        else:
            return False
        
if __name__ == "__main__":
    ms = MemberService()
    print(ms.find_by_telephone())

      预约设置服务类(同上)

#导包
import json

from base_service import BaseService

class OrderSettingService(BaseService):
    #重写(扩展式)
    def __init__(self):
        super().__init__()    #继承父类
        self.service_name = "OrderSettingService"    #服务名,多个方法使用

    #封装服务类下面的方法

    def edit_number_by_date(self,date):
        #给date添加class类
        date["class"] = "com.itheima.pojo.OrderSetting"
        resp = self.dubbo_client.invoke(self.service_name,"findByTelephone",date)
        if resp == "Failed":
            return False
        else:
            #将string类型的数据还原成 字典 或 列表数据
            return True

    def get_order_setting_by_month(self,months):
        resp = self.dubbo_client.invoke(self.service_name,"getOrderSettingByMonth",months)
        if resp == "Failed":
            return None
        else:
            return json.loads(resp)

    def add(self,data_list):               #自定义类型数据
      
        resp = self.dubbo_client.invoke(self.service_name,"add",data_list)
        if resp == "Failed":
            return False
        else:
            return True

if __name__ == "__main__":
    ms = OrderSettingService()