前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >执行多个模块的用例

执行多个模块的用例

作者头像
清菡
发布2020-12-02 15:47:09
发布2020-12-02 15:47:09
1.3K00
代码可运行
举报
文章被收录于专栏:清菡软件测试清菡软件测试
运行总次数:0
代码可运行

文章总览图

使用DDT做参数化,运行单个模块用例

来自文件test_data_xiejinjieguo_ddt.xlsx

来自文件do_excel_ddt.py

代码语言:javascript
代码运行次数:0
运行
复制
from openpyxl import load_workbook


class DoExcel:
    @staticmethod
    def get_data(file_name,sheet_name):
        wb=load_workbook(file_name)
        sheet=wb[sheet_name]

        test_data=[]
        for i in range(2,sheet.max_row+1):#
            row_data={}#字典
            row_data['case_id']= sheet.cell(i, 1).value  #行号 第1列第2行
            row_data['url']=sheet.cell(i,2).value
            row_data['data'] = sheet.cell(i, 3).value
            row_data['title'] = sheet.cell(i, 4).value
            row_data['http_method'] = sheet.cell(i,5).value
            row_data['expected'] = sheet.cell(i, 6).value#添加了一个期望值到测试数据里面去

            test_data.append(row_data)
        return test_data

    @staticmethod
#把结果写进Excel
    def write_back(file_name,sheet_name,i,result,Testresult):#专门写回数据
        wb=load_workbook(file_name)
        sheet=wb[sheet_name]
        sheet.cell(i,7).value=result
        sheet.cell(i,8).value=Testresult
        wb.save(file_name)#保存结果

if __name__ =='__main__':

    test_data=DoExcel().get_data("../test_data/test_data_xiejinjieguo_duomokuai.xlsx", 'login')
    print(test_data)
# No such file or directory: 'test_data_xiejinjieguo_jiacaseid.xlsx'  相对路径和绝对路径

#涉及Excel写操作,一定要关掉Excel
#Execl里面数字就是数字,其它全是字符串。

来自文件http_request_jingtaifangfa.py

代码语言:javascript
代码运行次数:0
运行
复制
import requests

class HttpRequest:
    @staticmethod
    def http_request(url,data,http_method,cookie=None):
        try :
            if http_method.upper()=='POST':
                    res=requests.post(url,data,cookies=cookie)
            # elif http_method.upper()=='POST':
            #         res=requests.post(url,data,cookies=cookie)
            else:
                print("输入的请求方法不对")
        except Exception as e:
            print("请求报错了:{0}".format(e))
            raise e
        return res#返回结果

if __name__ =='__main__':
        #注册
        register_url= 'http://api.nnzhp.cn/api/user/add_stu'
        register_data= { "name":"niuhanyang","grade":"天蝎座","phone":'18614711314'}

        #登录
        login_url= 'http://api.nnzhp.cn/api/user/login'
        login_data={"username": "niuhanyang", "passwd": 'aA123456'}


        # 充值
        recharge_url= 'http://api.nnzhp.cn/api/user/gold_add'
        recharge_data={"stu_id": "2170", "gold": '1'}

        login_res=HttpRequest().http_request(login_url,login_data,'post')
        recharge_res=HttpRequest().http_request(recharge_url,recharge_data,'post',login_res.cookies)
        print("充值结果:{}".format(recharge_res.json()))

来自文件get_cookie.py

代码语言:javascript
代码运行次数:0
运行
复制
#反射:不管何时何地,只要传入一个类名,它就可以帮你操作。
class GetCookie:
    Cookie=None

来自文件project_path_ddt.py

代码语言:javascript
代码运行次数:0
运行
复制
#路径的可配置
import os
'''专门来读取路径的值'''
project_path=os.path.split(os.path.split(os.path.realpath(__file__))[0])[0]
#对路径进行了切割,返回了这样一个元组
# path=os.path.realpath(__file__)

#测试用例的路径
test_case_path=os.path.join(project_path,'test_data','test_data_xiejinjieguo_ddt.xlsx')
#这就是绝对路径,顶级目录变,它就跟着变

#测试报告的路径
test_report_path=os.path.join(project_path,'test_result','html_report','test_api.html')

#前提是test_data的上一级目录打开,并执行run文件。这种办法,文件在哪里执行都行。
#某个时间,相对路径很好用,但是如果参照物变了就不行了。绝对路径,换台电脑就不行了。

来自文件test_http_request_ddt.py

代码语言:javascript
代码运行次数:0
运行
复制
#参数化
#执行错误,怎么写回结果?try except finally
import unittest
from tools.project_path_ddt import *
from tools.http_request_jingtaifangfa import HttpRequest
from tools.get_cookie import GetCookie#反射
from ddt import ddt,data#ddt拆分嵌套列表里面的数据。列表嵌套列表或列表嵌套字典这种形式,用data可以脱
#一层外衣,脱完之后有几个元素就有几条用例。
from tools.do_excel_ddt import DoExcel
test_data=DoExcel.get_data(test_case_path,'login')
# test_data=DoExcel.get_data('../test_data/test_data_xiejinjieguo_config.xlsx','login')#执行登录的用例
#FileNotFoundError: [Errno 2] No such file or directory: '../test_data/test_data_xiejinjieguo_config.xlsx'
#路径变了, 不可用相对路径了,相对于test_http_request_ddt可以用相对路径,但是相对于run而言,要用绝对路径
@ddt#装饰测试类
class TestHttpRequest(unittest.TestCase):
    def setUp(self):
       pass

    @data(*test_data)
    def test_api(self,item):#ddt脱外套,以逗号去数有几个元素,每个元素都传进item这个参数
#数据类型必须是列表嵌套列表或者是列表嵌套字典,如果是列表嵌套列表,读数据的时候以索引的方式来读,
#如果是列表嵌套字典,读数据就以key的方式来读。
        res=HttpRequest.http_request(item['url'],eval(item['data']),item['http_method'],getattr(GetCookie,'Cookie'))
        try:
            self.assertEqual(item['expected'],res.json()['error_code'])#做断言,是拿实际结果和期望结果去比对,判断用例通不通过,不加断言,根本没有期望结果,用例都是通过的。
                             #预期结果
            TestResult='PASS'
        except AssertionError as e:
            TestResult='Failed'
            print('执行用例出错:{0}'.format(e))
            raise e
        finally:#加finally,不管用例有没有执行通过,它里面的代码是一定会执行的。
            DoExcel.write_back(test_case_path,'login',item['case_id']+1,str(res.json()),TestResult)
            print('获取到的结果是:{0}'.format(res.text))  # 打印结果

    def tearDown(self):
        pass

来自文件run_ddt_html.py

代码语言:javascript
代码运行次数:0
运行
复制
import unittest#引入单元测试
import HTMLTestRunner#HTML测试报告
from tools.project_path_ddt import *
from tools.test_http_request_ddt import TestHttpRequest


suite=unittest.TestSuite()
# suite.addTest(TestHttpRequest('test_api'))#测试类的实例
loader=unittest.TestLoader()
suite.addTest(loader.loadTestsFromTestCase(TestHttpRequest))


with open(test_report_path,'wb') as file:
    #执行用例
    runner=HTMLTestRunner.HTMLTestRunner(stream=file,
                                         title='第一阶段项目实战',
                                         description='这个是单元测试报告1115',
                                         tester='清菡')
    runner.run(suite)

已创建文件test_data_xiejinjieguo_ddt.xlsx,文件do_excel_ddt.py,文件http_request_jingtaifangfa.py,文件get_cookie.py,文件project_path_ddt.py,文件test_http_request_ddt.py,文件run_ddt_html.py,运行文件run_ddt_html.py

输出结果如下:

方法一:并行多个模块用例

写多个模块,不同的模块就用不同的test_http_request,run里面去做加载。

来自文件test_data_xiejinjieguo_duomokuai.xlsx

反射:不管何时何地,只要传入一个类名,它就可以帮你操作。

来自文件get_cookie.py

代码语言:javascript
代码运行次数:0
运行
复制
#反射:不管何时何地,只要传入一个类名,它就可以帮你操作。
class GetCookie:
    Cookie=None

来自文件do_excel_ddt.py

代码语言:javascript
代码运行次数:0
运行
复制
from openpyxl import load_workbook


class DoExcel:
    @staticmethod
    def get_data(file_name,sheet_name):
        wb=load_workbook(file_name)
        sheet=wb[sheet_name]

        test_data=[]
        for i in range(2,sheet.max_row+1):#
            row_data={}#字典
            row_data['case_id']= sheet.cell(i, 1).value  #行号 第1列第2行
            row_data['url']=sheet.cell(i,2).value
            row_data['data'] = sheet.cell(i, 3).value
            row_data['title'] = sheet.cell(i, 4).value
            row_data['http_method'] = sheet.cell(i,5).value
            row_data['expected'] = sheet.cell(i, 6).value#添加了一个期望值到测试数据里面去

            test_data.append(row_data)
        return test_data

    @staticmethod
#把结果写进Excel
    def write_back(file_name,sheet_name,i,result,Testresult):#专门写回数据
        wb=load_workbook(file_name)
        sheet=wb[sheet_name]
        sheet.cell(i,7).value=result
        sheet.cell(i,8).value=Testresult
        wb.save(file_name)#保存结果

if __name__ =='__main__':

    test_data=DoExcel().get_data("../test_data/test_data_xiejinjieguo_duomokuai.xlsx", 'login')
    print(test_data)
# No such file or directory: 'test_data_xiejinjieguo_jiacaseid.xlsx'  相对路径和绝对路径

#涉及Excel写操作,一定要关掉Excel
#Execl里面数字就是数字,其它全是字符串。

来自文件http_request_jingtaifangfa.py

代码语言:javascript
代码运行次数:0
运行
复制
import requests

class HttpRequest:
    @staticmethod
    def http_request(url,data,http_method,cookie=None):
        try :
            if http_method.upper()=='POST':
                    res=requests.post(url,data,cookies=cookie)
            # elif http_method.upper()=='POST':
            #         res=requests.post(url,data,cookies=cookie)
            else:
                print("输入的请求方法不对")
        except Exception as e:
            print("请求报错了:{0}".format(e))
            raise e
        return res#返回结果

if __name__ =='__main__':
        #注册
        register_url= 'http://api.nnzhp.cn/api/user/add_stu'
        register_data= { "name":"niuhanyang","grade":"天蝎座","phone":'18614711314'}

        #登录
        login_url= 'http://api.nnzhp.cn/api/user/login'
        login_data={"username": "niuhanyang", "passwd": 'aA123456'}


        # 充值
        recharge_url= 'http://api.nnzhp.cn/api/user/gold_add'
        recharge_data={"stu_id": "2170", "gold": '1'}

        login_res=HttpRequest().http_request(login_url,login_data,'post')
        recharge_res=HttpRequest().http_request(recharge_url,recharge_data,'post',login_res.cookies)
        print("充值结果:{}".format(recharge_res.json()))

实现路径的可配置。

来自文件project_path_duomokuai.py

代码语言:javascript
代码运行次数:0
运行
复制
#路径的可配置
import os
'''专门来读取路径的值'''
project_path=os.path.split(os.path.split(os.path.realpath(__file__))[0])[0]
#对路径进行了切割,返回了这样一个元组
# path=os.path.realpath(__file__)

#测试用例的路径
test_case_path=os.path.join(project_path,'test_data','test_data_xiejinjieguo_duomokuai.xlsx')
#这就是绝对路径,顶级目录变,它就跟着变

#测试报告的路径
test_report_path=os.path.join(project_path,'test_result','html_report','test_api.html')


#前提是test_data的上一级目录打开,并执行run文件。这种办法,文件在哪里执行都行。
#某个时间,相对路径很好用,但是如果参照物变了就不行了。绝对路径,换台电脑就不行了。

来自文件test_http_request_login.py

代码语言:javascript
代码运行次数:0
运行
复制
#参数化
#执行错误,怎么写回结果?try except finally
import unittest
from tools.project_path_duomokuai import *
from tools.http_request_jingtaifangfa import HttpRequest
from tools.get_cookie import GetCookie#反射
from ddt import ddt,data#ddt拆分嵌套列表里面的数据。列表嵌套列表或列表嵌套字典这种形式,用data可以脱
#一层外衣,脱完之后有几个元素就有几条用例。
from tools.do_excel_ddt import DoExcel
test_data=DoExcel.get_data(test_case_path,'login')
# test_data=DoExcel.get_data('../test_data/test_data_xiejinjieguo_config.xlsx','login')#执行登录的用例
#FileNotFoundError: [Errno 2] No such file or directory: '../test_data/test_data_xiejinjieguo_config.xlsx'
#路径变了, 不可用相对路径了,相对于test_http_request_ddt可以用相对路径,但是相对于run而言,要用绝对路径
@ddt#装饰测试类
class TestHttpRequest(unittest.TestCase):
    def setUp(self):
       pass

    @data(*test_data)
    def test_api(self,item):#ddt脱外套,以逗号去数有几个元素,每个元素都传进item这个参数
#数据类型必须是列表嵌套列表或者是列表嵌套字典,如果是列表嵌套列表,读数据的时候以索引的方式来读,
#如果是列表嵌套字典,读数据就以key的方式来读。
        res=HttpRequest.http_request(item['url'],eval(item['data']),item['http_method'],getattr(GetCookie,'Cookie'))

        try:
            self.assertEqual(item['expected'],res.json()['error_code'])#做断言,是拿实际结果和期望结果去比对,判断用例通不通过,不加断言,根本没有期望结果,用例都是通过的。
                             #预期结果
            TestResult='PASS'
        except AssertionError as e:
            TestResult='Failed'
            print('执行用例出错:{0}'.format(e))
            raise e
        finally:#加finally,不管用例有没有执行通过,它里面的代码是一定会执行的。
            DoExcel.write_back(test_case_path,'login',item['case_id']+1,str(res.json()),TestResult)
            print('获取到的结果是:{0}'.format(res.text))  # 打印结果



    def tearDown(self):
        pass

来自文件test_http_request_recharge.py

代码语言:javascript
代码运行次数:0
运行
复制
#参数化
#执行错误,怎么写回结果?try except finally
import unittest
from tools.project_path_duomokuai import *
from tools.http_request_jingtaifangfa import HttpRequest
from tools.get_cookie import GetCookie#反射
from ddt import ddt,data#ddt拆分嵌套列表里面的数据。列表嵌套列表或列表嵌套字典这种形式,用data可以脱
#一层外衣,脱完之后有几个元素就有几条用例。
from tools.do_excel_ddt import DoExcel
test_data=DoExcel.get_data(test_case_path,'recharge')
# test_data=DoExcel.get_data('../test_data/test_data_xiejinjieguo_config.xlsx','login')#执行登录的用例
#FileNotFoundError: [Errno 2] No such file or directory: '../test_data/test_data_xiejinjieguo_config.xlsx'
#路径变了, 不可用相对路径了,相对于test_http_request_ddt可以用相对路径,但是相对于run而言,要用绝对路径
@ddt#装饰测试类
class TestHttpRequest(unittest.TestCase):
    def setUp(self):
       pass

    @data(*test_data)
    def test_api(self,item):#ddt脱外套,以逗号去数有几个元素,每个元素都传进item这个参数
#数据类型必须是列表嵌套列表或者是列表嵌套字典,如果是列表嵌套列表,读数据的时候以索引的方式来读,
#如果是列表嵌套字典,读数据就以key的方式来读。
        res=HttpRequest.http_request(item['url'],eval(item['data']),item['http_method'],getattr(GetCookie,'Cookie'))


        if res.cookies:  # 利用反射存储cookie值
            setattr(GetCookie, 'Cookie', res.cookies)
        try:
            self.assertEqual(item['expected'],res.json()['error_code'])#做断言,是拿实际结果和期望结果去比对,判断用例通不通过,不加断言,根本没有期望结果,用例都是通过的。
                             #预期结果
            TestResult='PASS'
        except AssertionError as e:
            TestResult='Failed'
            print('执行用例出错:{0}'.format(e))
            raise e
        finally:#加finally,不管用例有没有执行通过,它里面的代码是一定会执行的。
            DoExcel.write_back(test_case_path,'recharge',item['case_id']+1,str(res.text),TestResult)
            print('获取到的结果是:{0}'.format(res.text))  # 打印结果



    def tearDown(self):
        pass

来自文件run_duomokuai.py

代码语言:javascript
代码运行次数:0
运行
复制
'''
写多个模块,不同的模块就用不同的test_http_request,run里面去做加载

'''

import unittest#引入单元测试
import HTMLTestRunner#HTML测试报告
from tools.project_path_duomokuai import *
from tools import test_http_request_login
from tools import test_http_request_recharge


suite=unittest.TestSuite()
# suite.addTest(TestHttpRequest('test_api'))#测试类的实例
loader=unittest.TestLoader()
#并行多个用例的方法一
suite.addTest(loader.loadTestsFromModule(test_http_request_login))
suite.addTest(loader.loadTestsFromModule(test_http_request_recharge))


with open(test_report_path,'wb') as file:
    #执行用例
    runner=HTMLTestRunner.HTMLTestRunner(stream=file,
                                         title='第一阶段项目实战',
                                         description='这个是单元测试报告1115',
                                         tester='清菡')
    runner.run(suite)

已创建文件test_data_xiejinjieguo_duomokuai.xlsx,文件get_cookie.py,文件do_excel_ddt.py,文件http_request_jingtaifangfa.py,文件project_path_duomokuai.py,文件test_http_request_login.py,文件test_http_request_recharge.py,文件run_duomokuai.py,运行文件run_duomokuai.py

输出结果如下:

方法二:通过配置文件去决定执行哪个模块用例

通过配置文件去决定执行哪个模块的用例。通过配置文件,以字典的形式key去存它的表单,value去存它执行所有用例还是些其它的用例。

来自文件test_data_xiejinjieguo_config.xlsx

来自文件do_excel_config.py

代码语言:javascript
代码运行次数:0
运行
复制
from openpyxl import load_workbook
from tools.read_config import ReadConfig
from tools import project_path_config

class DoExcel:
    @staticmethod
    def get_data(file_name):
        wb = load_workbook(file_name)
        mode=eval(ReadConfig.get_config(project_path_config.case_config_path, 'MODE', 'mode'))

        test_data = []#把字典里所有数据都拿到
        for key in mode:#遍历这个存在配置文件里的字典
            sheet = wb[key]#key是表单名
            if mode[key]=='all':
                for i in range(2,sheet.max_row+1):#
                    row_data={}#字典
                    row_data['case_id']= sheet.cell(i, 1).value  #行号 第1列第2行
                    row_data['url']=sheet.cell(i,2).value
                    row_data['data'] = sheet.cell(i, 3).value
                    row_data['title'] = sheet.cell(i, 4).value
                    row_data['http_method'] = sheet.cell(i,5).value
                    row_data['expected'] = sheet.cell(i, 6).value#添加了一个期望值到测试数据里面去
                    row_data['sheet_name'] = key
                    test_data.append(row_data)
            else:
                for case_id in mode[key]:#
                    row_data = {}  # 字典
                    row_data['case_id'] = sheet.cell(case_id+1, 1).value  # 行号 第1列第2行
                    row_data['url'] = sheet.cell(case_id+1, 2).value
                    row_data['data'] = sheet.cell(case_id+1, 3).value
                    row_data['title'] = sheet.cell(case_id+1, 4).value
                    row_data['http_method'] = sheet.cell(case_id+1, 5).value
                    row_data['expected'] = sheet.cell(case_id+1, 6).value  # 添加了一个期望值到测试数据里面去
                    row_data['sheet_name']=key
                    test_data.append(row_data)

        return test_data

    @staticmethod
#把结果写进Excel
    def write_back(file_name,sheet_name,i,result,Testresult):#专门写回数据
        wb=load_workbook(file_name)
        sheet=wb[sheet_name]
        sheet.cell(i,7).value=result
        sheet.cell(i,8).value=Testresult
        wb.save(file_name)#保存结果

if __name__ =='__main__':

    test_data=DoExcel().get_data(project_path_config.test_case_path)
    print(len(test_data))
# No such file or directory: 'test_data_xiejinjieguo_jiacaseid.xlsx'  相对路径和绝对路径

#涉及Excel写操作,一定要关掉Excel
#Execl里面数字就是数字,其它全是字符串。

来自文件case.config

来自文件http_request_jingtaifangfa.py

代码语言:javascript
代码运行次数:0
运行
复制
import requests

class HttpRequest:
    @staticmethod
    def http_request(url,data,http_method,cookie=None):
        try :
            if http_method.upper()=='POST':
                    res=requests.post(url,data,cookies=cookie)
            # elif http_method.upper()=='POST':
            #         res=requests.post(url,data,cookies=cookie)
            else:
                print("输入的请求方法不对")
        except Exception as e:
            print("请求报错了:{0}".format(e))
            raise e
        return res#返回结果

if __name__ =='__main__':
        #注册
        register_url= 'http://api.nnzhp.cn/api/user/add_stu'
        register_data= { "name":"niuhanyang","grade":"天蝎座","phone":'18614711314'}

        #登录
        login_url= 'http://api.nnzhp.cn/api/user/login'
        login_data={"username": "niuhanyang", "passwd": 'aA123456'}


        # 充值
        recharge_url= 'http://api.nnzhp.cn/api/user/gold_add'
        recharge_data={"stu_id": "2170", "gold": '1'}

        login_res=HttpRequest().http_request(login_url,login_data,'post')
        recharge_res=HttpRequest().http_request(recharge_url,recharge_data,'post',login_res.cookies)
        print("充值结果:{}".format(recharge_res.json()))

来自文件project_path_config.py

代码语言:javascript
代码运行次数:0
运行
复制
#路径的可配置
import os
'''专门来读取路径的值'''
project_path=os.path.split(os.path.split(os.path.realpath(__file__))[0])[0]
#对路径进行了切割,返回了这样一个元组
# path=os.path.realpath(__file__)

#测试用例的路径
test_case_path=os.path.join(project_path,'test_data','test_data_xiejinjieguo_config.xlsx')
#这就是绝对路径,顶级目录变,它就跟着变

#测试报告的路径
test_report_path=os.path.join(project_path,'test_result','html_report','test_api.html')

#配置文件的路径
case_config_path=os.path.join(project_path,'conf','case.config')
# print(case_config_path)

#前提是test_data的上一级目录打开,并执行run文件。这种办法,文件在哪里执行都行。
#某个时间,相对路径很好用,但是如果参照物变了就不行了。绝对路径,换台电脑就不行了。

来自文件test_http_request_config.py

代码语言:javascript
代码运行次数:0
运行
复制

import unittest
from tools.project_path_config import *
from tools.http_request_jingtaifangfa import HttpRequest
from tools.get_cookie import GetCookie#反射
from ddt import ddt,data
from tools.do_excel_config import DoExcel
test_data=DoExcel.get_data(test_case_path)#执行所有的用例

@ddt#装饰测试类
class TestHttpRequest(unittest.TestCase):
    def setUp(self):
       pass

    @data(*test_data)
    def test_api(self,item):#ddt脱外套,以逗号去数有几个元素,每个元素都传进item这个参数
#数据类型必须是列表嵌套列表或者是列表嵌套字典,如果是列表嵌套列表,读数据的时候以索引的方式来读,
#如果是列表嵌套字典,读数据就以key的方式来读。
        res=HttpRequest.http_request(item['url'],eval(item['data']),item['http_method'],getattr(GetCookie,'Cookie'))

        if res.cookies:#利用反射存储cookie值
            setattr(GetCookie,'Cookie',res.cookies)
        try:
            self.assertEqual(item['expected'],res.json()['error_code'])#做断言,是拿实际结果和期望结果去比对,判断用例通不通过,不加断言,根本没有期望结果,用例都是通过的。
                             #预期结果
            TestResult='PASS'
        except AssertionError as e:
            TestResult='Failed'
            print('执行用例出错:{0}'.format(e))
            raise e
        finally:#加finally,不管用例有没有执行通过,它里面的代码是一定会执行的。
            DoExcel.write_back(test_case_path,item['sheet_name'],item['case_id']+1,str(res.json()),TestResult)
            print('获取到的结果是:{0}'.format(res.text))  # 打印结果



    def tearDown(self):
        pass

来自文件get_cookie.py

代码语言:javascript
代码运行次数:0
运行
复制
#反射:不管何时何地,只要传入一个类名,它就可以帮你操作。
class GetCookie:
    Cookie=None

来自文件read_config.py

代码语言:javascript
代码运行次数:0
运行
复制
import configparser

class ReadConfig:
    @staticmethod
    def get_config(file_path,section,option):
        cf=configparser.ConfigParser()
        cf.read(file_path)
        return cf[section][option]

if __name__ == '__main__':
    from tools import project_path_config
    print(ReadConfig.get_config(project_path_config.case_config_path, 'MODE', 'mode'))

来自文件run_ddt_config.py

代码语言:javascript
代码运行次数:0
运行
复制
#方法二
#通过配置文件去决定执行哪个模块的用例。通过配置文件,以字典的形式key去存它的表单,
# value去存它执行所有用例还是些其它的用例
import unittest#引入单元测试
import HTMLTestRunner#HTML测试报告
from tools.project_path_config import *
from tools.test_http_request_config import TestHttpRequest


suite=unittest.TestSuite()
# suite.addTest(TestHttpRequest('test_api'))#测试类的实例
loader=unittest.TestLoader()
suite.addTest(loader.loadTestsFromTestCase(TestHttpRequest))


with open(test_report_path,'wb') as file:
    #执行用例
    runner=HTMLTestRunner.HTMLTestRunner(stream=file,
                                         title='第一阶段项目实战',
                                         description='这个是单元测试报告1115',
                                         tester='清菡')
    runner.run(suite)

已创建文件test_data_xiejinjieguo_config.xlsx,文件get_cookie.py,文件do_excel_config.py,文件case.config,文件http_request_jingtaifangfa.py,文件project_path_config.py,文件test_http_request_config.py,文件read_config.py,文件run_ddt_config.py,执行文件run_ddt_config.py

输出结果如下:


本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-02-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 清菡软件测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章总览图
    • 使用DDT做参数化,运行单个模块用例
    • 方法一:并行多个模块用例
    • 方法二:通过配置文件去决定执行哪个模块用例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档