一天一个关于测试知识点,5分钟内讲解你最关心的软件测试问题,今天就来谈谈关于软件测试中的“简易计算器测试用例用Pytest最终实现方式”。
利用以上的各种方法,优化了最后简易计算器测试用例脚本,代码如下。
案例2-18:用Pytest实现简易计算器的测试的最终代码。
#coding=utf-8
import Pytest
from Util import util
from Calculator import calculator
import allure
@Pytest.fixture(params=[{'first':4,"second":2,"result":2},{'first':2,"second":4,"result":-2},{'first':4,"second":4,"result":0}])
def subs_provider(request):
return request.param
@Pytest.fixture(params=[{'first':4,"second":2,"result":8},{'first':4,"second":-2,"result":-8},{'first':-4,"second":2,"result":-8},{'first':-4,"second":-2,"result":8}])
def multiply_provider(request):
return request.param
class TestCalculator:
def setup_class(self):
print("测试开始")
@allure.feature('test_module_Calculator')
@allure.story('test_story_01')
@allure.severity('blocker')
@allure.issue("http://www.jila.com")
@allure.testcase("http://www.testlink.com")
def test_base(self):
"""
用例描述:测试加、减、乘、除基本功能
"""
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_Calculator')
@allure.story('test_story_01')
@allure.severity('Normal')
@allure.issue("http://www.jila.com")
@allure.testcase("http://www.testlink.com")
def test_max_number(self):
"""
用例描述:测试很大的数字
"""
j=calculator(9223372036854775808,9223372036854775808)
util.AssertEqual(j.mymultiply(),85070591730234615865843651857942052864)
@allure.feature('test_module_Calculator')
@allure.story('test_story_01')
@allure.severity('Critical')
@allure.issue("http://www.jila.com")
@allure.testcase("http://www.testlink.com")
def test_subs(self,subs_provider):
"""
用例描述:测试商为正数、负数和0
"""
j=calculator(subs_provider["first"],subs_provider["second"])
util.AssertEqual(j.mysubs(),subs_provider["result"])
@allure.feature('test_module_Calculator')
@allure.story('test_story_01')
@allure.severity('Critical')
@allure.issue("http://www.jila.com")
@allure.testcase("http://www.testlink.com")
def test_multiply(self,multiply_provider):
"""
用例描述:测试正数乘正数、正数乘负数、负数乘正数和负数乘负数
"""
j=calculator(multiply_provider["first"],multiply_provider["second"])
util.AssertEqual(j.mymultiply(),multiply_provider["result"])
@allure.feature('test_module_Calculator')
@allure.story('test_story_01')
@allure.severity('Critical')
@allure.issue("http://www.jila.com")
@allure.testcase("http://www.testlink.com")
def test_divide(self):
"""
用例描述:除数为0
"""
j=calculator(4,0)
util.AssertEqual(j.mydivide(),0)
def teardown_class(self):
print("测试结束")
if __name__ == '__main__':
Pytest.main(['-sv','-q','--alluredir','./report/xml'])
最后的测试报告如图2-36。
图2-36 简易计算器基于allure生成Pytest 测试报告
今天就学习到这里了,每个工作日小编都会更新一个小知识,希望大家多多关注我们,一起来学习喔!