python中参数化和测试报告(软件测试)

一.参数化

参数化在测试方法中,使用变量来代替具体的测试数据,然后使用传参的方法将测试数据传递给方法的变量

好处:相似的代码不需要多次书写.

工作中场景:

1.测试数据—般放在json文件中

2.使用代码读取json文件,提取我们想要的数据—>[(),()] or [[],[]]

安装插件

unittest 框架本身是不支持参数化,想要使用参数化,需要安装插件来完成

-联网安装(cmd安装,或者Terminal)

pip install parameterized

查看是否安装了

pip list 查看是否有parameterized

二.参数化代码

1.导包unittest/ parameterized

import unittest

from parameterized import parameterized from

tools import login

组织测试数据data[(),(),()]

data = [

( " admin" , “123456”,“登录成功”),

( " root" , “123456”,“登录失败”),

( " admin’ , “123123”,“登录失败”)]

2.定义测试类

class TestLogin(unittest.Testcase):

3,书写测试方法(用到的测试数据使用变量代替)

@parameterized.expand(data)

def test_login(self, username,password,expect):

self.assertEqual(expect,login(username,password))

4.组织测试数据并传参(装饰器@)

三.跳过

对于一些未完成的或者不满足测试条件的测试函数和测试类,不想执行,可以使用跳过使用方法,装饰器完成

代码书写在Testcase文件的test_函数前面

直接将测试函数标记成跳过

1.@unittest.skip(‘跳过额原因’)

根据条件判断测试函数是否跳过,判断条件成立,跳过

2.@unittest.skipIf(判断条件,"跳过原因’)

四.测试报告

生成第三方的测试报告

1.获取第三方的测试运行类模块,将其放在代码的目录中

2.导包unittest

import unittest
from Html_Testruanner import HTMLTestRunner

3.使用套件对象,加载对象去添加用例方法

suite=unittest.TestLoader().discover(“.”,“day9999.py”)

4.实例化第三方的运行对象并运行套件对象

HTMLTestRunner()

stream=sys.stdout,必填,测试报告的文件对象(open ),注意点,要使用wb打开

verbosity=1,可选,报告的详细程度,默认1简略,2详细

titLe=None,可选,测试报告的标题

description=None可选,描述信息,Python的版本,pycharm版本

file = ‘report.html’ # 报告的后缀是.htmL
with open(file,‘wb’)as f: # file为报告存放路径和名字
runner = HTMLTestRunner(f,2,‘测试报告’) # 运行对象
runner.run(suite) # 运行对象执行套件,要写在with的缩进中

1.组织用例文件(Testcase 里边),书写参数化,书写断言,书写Fixture,

书写跳过,如果单个测试测试文件,直接运行,得到测试报告,如果有多个测试文件,需要组装运行生成测试报告

2.使用套件对象组装,或者使用加载对象组装

3,运行对象运行

3.1运行对象工第三方的运行类(文件对象(打开文件需要使用wb方式))

3.2运行对象.run(套件对象)


版权声明:本文为weixin_48195174原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。