class TestCalc: cal = Calculator() @pytest.mark.parametrize('a,b,result', divdatas, ids=divids) @pytest.mark.run(order=3) @pytest.mark.dependency(depends=['test_mult']) def test_div(self, a, b, result): if b == 0: print("除数不能为0") return 0 else: assert result == self.cal.div(a, b) @pytest.mark.parametrize('a,b,result', adddatas, ids=addids) @pytest.mark.run(order=0) @pytest.mark.dependency(name='test_add') def test_add(self, a, b, result): assert result == self.cal.add(a, b) @pytest.mark.parametrize('a,b,result', minusdatas, ids=minusids) @pytest.mark.run(order=1) @pytest.mark.dependency(depends=['test_add']) def test_minus(self, a, b, result): assert result == self.cal.minus(a, b) @pytest.mark.parametrize('a,b,result', multdatas, ids=multids) @pytest.mark.run(order=2) @pytest.mark.dependency(name='test_mult') def test_mult(self, a, b, result): assert result == self.cal.mult(a, b)
def test_sub(self,a,b,c): """ 减法测试用例 :param a: :param b: :param c: :return: """ cal = Calculator() print(f'\na,b,c的值:{a} - {b} = {c}') assert cal.sub(a,b) == c
def test_add(self,a,b,c): """ 加法测试用例 :param a: :param b: :param c: :return: """ cal = Calculator() print(f'\na,b,c的值:{a} + {b} = {c}') assert cal.add(a,b) == c
def test_mul(self,a,b,c): """ 乘法测试用例 ((Decimal(a) * Decimal(b)).quantize(Decimal('0.00')) :param a: :param b: :param c: :return: """ import decimal cal = Calculator() print(f'\na,b,c的值:{a} * {b} = {c}') assert cal.mul(a,b) == c
class TestCalculator(): cal = Calculator() def test_add(self): assert 2 == self.cal.add(1, 1) def test_power(self): assert 4 == self.cal.power(2) def test_sqrt(self): assert 3 == self.cal.sqrt(9) def test_mod(self): assert 2 == self.cal.mod(10, 4) def test_divisibility(self): assert 2 == self.cal.divisibility(7, 3)
def test_div(self,a,b,c): """ 除法测试用例 :param a: :param b: :param c: :return: """ with allure.step("实例化"): cal = Calculator() with allure.step("判断除数是否为0"): if b != 0: print(f'\na,b,c的值:{a} / {b} = {c}') assert cal.div(a,b) == c else: allure.attach("<body>这是一段html body块</body>", "html测试块", attachment_type=allure.attachment_type.HTML) allure.attach.file("../report/photo/a.jpg", name="这是图片", attachment_type=allure.attachment_type.JPG) allure.attach("除数不能为0!", attachment_type=allure.attachment_type.TEXT) print("除数不能为0!")
def test_add(): cal = Calculator() assert 2 == cal.add(1,1)
def setup_method(self): self.cal = Calculator() print("setup_method")
def setup_class(self): print("类级别setup") self.calc = Calculator()
def test_add(self): cal = Calculator() assert cal.add(1, 1) == 2
def test_div(self): cal = Calculator() assert cal.div(4, 2) == 2
def test_add2(): cal = Calculator() assert 3 == cal.add(2, 1)
def get_calc(): print("计算开始") calc = Calculator() yield calc print("计算结束")
def setup(self): self.cal = Calculator()
def get_calc(): print("获取计算器实例") calc = Calculator() return calc
class TestCale: # 调用被测类 cal = Calculator() @pytest.mark.parametrize('a', yaml.safe_load(open('./number.yml'))) @pytest.mark.parametrize('b', yaml.safe_load(open('./number.yml'))) def test_add(self, a, b): a = a['a'] b = b['b'] try: result = a + b print(f"\na的值为:{a}") print(f'b的值为:{b}') print(f'result的值为:{result}') except Exception as Exc: print(f'\n测试用例异常返回结果为:{Exc}') calc_Exc = self.cal.add(a, b) print(f'程序异常返回结果为:{calc_Exc}') if str(Exc) == str(calc_Exc): print('异常检测成功') assert True else: print("异常检测不通过") assert False else: assert result == self.cal.add(a, b) @pytest.mark.parametrize('a', yaml.safe_load(open('./number.yml'))) @pytest.mark.parametrize('b', yaml.safe_load(open('./number.yml'))) def test_sub(self, a, b): a = a['a'] b = b['b'] try: result = a - b print(f'\na的值为:{a}') print(f'b的值为:{b}') print(f'result的值为{result}') except Exception as Exc: print(f'\n测试用例异常返回结果为:{Exc}') err_Exc = self.cal.sub(a, b) print(f'程序异常返回结果为:{err_Exc}') if str(Exc) == str(err_Exc): print('异常检测成功') assert True else: print('异常检测失败') assert False else: assert result == self.cal.sub(a, b) @pytest.mark.parametrize('a', yaml.safe_load(open('./number.yml'))) @pytest.mark.parametrize('b', yaml.safe_load(open('./number.yml'))) def test_mul(self, a, b): a = a['a'] b = b['b'] try: result = a * b print(f'\na的值为:{a}') print(f'b的值为:{b}') print(f'result的值为{result}') except Exception as Exc: print(f'\n测试用例异常返回结果为:{Exc}') err_Exc = self.cal.mul(a, b) print(f'程序异常返回结果为:{err_Exc}') if str(Exc) == str(err_Exc): print('异常检测成功') assert True else: print('异常检测失败') assert False else: assert result == self.cal.mul(a, b) @pytest.mark.parametrize('a', yaml.safe_load(open('./number.yml'))) @pytest.mark.parametrize('b', yaml.safe_load(open('./number.yml'))) def test_div(self, a, b): a = a['a'] b = b['b'] try: result = a / b print(f'\na的值为:{a}') print(f'b的值为:{b}') print(f'result的值为{result}') except Exception as Exc: print(f'\n测试用例异常返回结果为:{Exc}') err_Exc = self.cal.div(a, b) print(f'程序异常返回结果为:{err_Exc}') if str(Exc) == str(err_Exc): print('异常检测成功') assert True else: print('异常检测失败') assert False else: assert result == self.cal.div(a, b)
def start(): print("开始计算") cla = Calculator() yield print("计算结束")
import pytest import yaml ''' 1、使用参数化数据驱动,完成加减乘除测试用例的自动生成 -2、修改测试用例为check_开头,修改测试用例的执行规则,执行所有check_开头和test_开头的测试用例 -3、控制测试用例顺序按照【加-减-乘-除】这个顺序执行, -4、减法依赖加法, 除法依赖乘法 -5、注册一个命令行参数env,env默认值是test,表示测试环境,另外还有两个值 (dev,st)不同的环境读取不同的数据。 ''' from pythoncode.calc import Calculator calc = Calculator() with open("../data/calcdata.yaml") as f: datas = yaml.safe_load(f) adddatas = datas['add'].values() addids = datas['add'].keys() subdatas = datas['sub'].values() subids = datas['sub'].keys() multdatas = datas['mult'].values() multids = datas['mult'].keys() divdatas = datas['div'].values() divids = datas['div'].keys() class TestCalc: #加法 @pytest.mark.add @pytest.mark.parametrize(("a, b, result"), adddatas, ids=addids) #@pytest.mark.flaky(reruns=5, reruns_delay=2)#设置失败重跑
def test_add1(): cal = Calculator() assert 3 == cal.add(1,2)
def test_div2(): cal = Calculator() assert cal.div(2, 1) == 2
def test_div(): cal = Calculator() assert 1 == cal.div(2,2)
def setup_class(self): self.cal = Calculator() print("类级别 setup")
def test_add4(): cal = Calculator() assert cal.add(3, 4) == 7
def get_calc(): print("开始计算") calc = Calculator() yield calc print("结束计算")
def test_add1(self, a, b, result): cal = Calculator() assert cal.add(a, b) == result
def fix_calc(): cal = Calculator() print("【开始计算】") yield cal print("【计算结束】")
def test_div(self, a, b, result, open): cal = Calculator() assert self.cal.div(a, b) == result
def setup_class(self): self.cal = Calculator()
#!/usr/bin/env python # -*- coding:utf-8 -*- import pytest import yaml from pythoncode.calc import Calculator cal = Calculator() def get_testDatas(): with open(file="./datas/testDatas.yaml", mode="r") as f: testDatas = yaml.safe_load(f) print(type(testDatas)) print(testDatas) return testDatas def get_steps(): with open(file="./datas/steps.yaml", mode="r") as f: add_datas = [] div_datas = [] stepDatas = yaml.safe_load(f) testDatas = get_testDatas() for step in stepDatas: if step == "add": for key in testDatas.keys(): if key[:3] == step: add_datas.append(testDatas[key]) elif step == "div": for key in testDatas.keys():
def setup(self): self.cal = Calculator() print("初始化一个计算机对象")