单元测试工具(连载12)

  • 2019 年 12 月 12 日
  • 笔记

3. Severity定制

Allure中对严重级别的定义:

lBlocker级别:中断缺陷(客户端程序无响应,无法执行下一步操作)

lCritical级别:临界缺陷( 功能点缺失)

lNormal级别:普通缺陷(数值计算错误)

lMinor级别:次要缺陷(界面错误与UI需求不符)

lTrivial级别:轻微缺陷(必输项无提示,或者提示不规范)

案例12:配合allure生成pytest 测试报告之Severity定制。

# -*- coding: utf-8 -*-

import allure

import pytest

from Calculator import calculator

from Util import util

@allure.feature('test_module_01')

@allure.story('test_story_01')

@allure.severity('blocker')

def test_case_01():

"""

用例描述:测试计算器基本功能

""“

j=calculator(4,2)

util.AssertEqual(j.myadd(),6)

util.AssertEqual(j.mysubs(),2)

util.AssertEqual(j.mymultiply(),8)

util.AssertEqual(j.mydivide(),2)

@allure.feature('test_module_01')

@allure.story('test_story_01')

@allure.severity('critical')

def test_case_02():

"""

用例描述:测试很大的数值

"""

j=calculator(9223372036854775808,9223372036854775808)

util.AssertEqual(j.mymultiply(),85070591730234615865843651857942052864)

@allure.feature('test_module_01')

@allure.story('test_story_02')

@allure.severity('normal')

def test_case_03():

"""

用例描述:测试各种情况下的减

"""

mydata =[[4,2,2],[2,4,-2],[4,4,0]]

n=0

for i inmydata:

j=calculator(mydata[n][0],mydata[n][1])

util.AssertEqual(j.mysubs(),mydata[n][2])

n+=1

@allure.feature('test_module_01')

@allure.story('test_story_02')

@allure.severity('minor')

def test_case_04():

"""

用例描述:Test case 04

"""

mydata =[[4,2,8],[4,-2,-8],[-4,2,-8],[-4,-2,8]]

n=0

judge=True

for i inmydata:

j=calculator(mydata[n][0],mydata[n][1])

util.AssertEqual(j.mymultiply(),mydata[n][2])

n+=1

if __name__ == '__main__':

pytest.main(['-s', '-q', '–alluredir', './report/xml'])

测试报告如图33所示。

图33 配合allure生成pytest 测试报告之Severity定制

4.Step定制

案例13:配合allure生成pytest 测试报告之Step定制。

Util.py

import allure

class util:

@allure.step("判断a是否等于b")

defAssertEqual(a,b):

assert a == b

测试程序。

# -*- coding: utf-8 -*-

import allure

import pytest

from Calculator import calculator

from Util import util

@allure.feature('test_module_01')

@allure.story('test_story_01')

@allure.severity('blocker')

def test_case():

j=calculator(4,2)

util.AssertEqual(j.myadd(),6)

util.AssertEqual(j.mysubs(),2)

util.AssertEqual(j.mymultiply(),8)

util.AssertEqual(j.mydivide(),2)

if __name__ == '__main__':

pytest.main(['-s', '-q', '–alluredir', './report/xml'])

测试报告如图34所示。

图34 配合allure生成pytest 测试报告之Step定制

5.Issue和TestCase定制

案例14:配合allure生成pytest 测试报告之Issue和TestCase定制。

@allure.feature('test_module_01')

@allure.story('test_story_01')

@allure.severity('blocker')

@allure.issue("http://www.baidu.com")

@allure.testcase("http://www.testlink.com")

def test_case():

j=calculator(4,2)

util.AssertEqual(j.myadd(),6)

util.AssertEqual(j.mysubs(),2)

util.AssertEqual(j.mymultiply(),8)

util.AssertEqual(j.mydivide(),2)

if __name__ == '__main__':

pytest.main(['-s', '-q', '–alluredir', './report/xml'])

测试报告如图35所示。

图35 配合allure生成pytest 测试报告之Issue和TestCase定制

星云测试

http://www.teststars.cc

奇林软件

http://www.kylinpet.com

联合通测

http://www.quicktesting.net