Python-接口自动化-封装主运行程序

# -*- coding: utf-8 -*-
from base.runmethod import Run_method
from data.get_data import GetData
from util.common_util import CommonUtil
from data.dependent_data import Dependent_data
from util.send_email import Send_email
from dataconfig.get_token import Get_token
class Runtest:

    def __init__(self):
        self.run_method = Run_method()
        self.data = GetData()
        self.com_util = CommonUtil()
        self.send_mail = Send_email()   #以上就是很明显的实例化类

    #程序执行的入口
    def go_on_run(self):
        res = None  #res代表接口运行结果,先给个空值
        pass_count = [] #与预期值相同的行号,也就是接口测试通过的行号列表
        fail_count = [] #与上一个相反
        rows_count = self.data.get_case_lines() #拿到行号是多少,也就是共计多少条case

        for i in range(1,rows_count):   #range函数我在上一篇里写了,可以去看
            is_run = self.data.get_is_run(i)    #读excel看这条case是否需要运行

            if is_run:  #这样写就是一定符合条件,必须运行,if 后面跟谁都可以,if shuai,if mei
                url = self.data.get_url(i)
                method = self.data.get_request_method(i)
                request_data = self.data.get_data_for_json(i)
                expect = self.data.get_expect_data(i)
                header = self.data.is_header(i) #上边这几个就不说了,前几篇讲过
                depend_case = self.data.is_depend(i)    #判断是否依赖,如果依赖把依赖的接口id返回

                if depend_case != None: #如果依赖不为空,也就是有需要依赖的变量值
                    self.depend_data = Dependent_data(depend_case)  #实例化,把依赖的接口id传进去
                    depend_response_data = self.depend_data.get_data_for_key(i) #获取依赖的key,运行接口返回出来的
                    depend_key = self.data.get_depend_field(i)  #通过行,将具体依赖的字段拿到
                    request_data[depend_key] = depend_response_data #将request_data值更新成依赖接口来到的值

                    res = self.run_method.run_main(method, url, request_data,header)    #执行接口获取结果

                if header == "yes": #如果excel表中header是yes
                    get_token = Get_token() #实例化
                    yue = get_token.get_token() #执行该类中的get_token函数拿到token值
                    headers = {
                        "token":yue
                    }   #这句是把token封装成json格式

                    res = self.run_method.run_main(method, url, request_data,header=headers)    #同上

                else:   #这个else就是没有header,没有依赖数据后执行的
                    #method,url,data=None,header=None
                    res = self.run_method.run_main(method,url,request_data)

                if self.com_util.is_contain(expect,res) :    #这句是通过判断预期值的字符串是否在返回结果内,如果是则
                    self.data.write_result(i,'Pass')    #将Pass写入excel对应行的实际结果单元格内
                    pass_count.append(i)    #将通过的行号加入pass_count列表内,方便输出测试报告

                else:
                    self.data.write_result(i,res)   #将没通过测试的结果写入表格内
                    fail_count.append(i)    #将没有通过的行号加入pass_count列表内



         #发送邮件
        self.send_mail.send_main(pass_count,fail_count) #调用发送邮件类,将通过或未通过列表传过去
        print("~~~~~~~~~~~~~~~~~~~~~~~")
        print("执行成功")
        print("~~~~~~~~~~~~~~~~~~~~~~~")

if __name__ == '__main__':
    run = Runtest()
    run.go_on_run()



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秦朝胖子得加钱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值