11-27 pytest 测试实战练习

PPT

https://pdf.ceshiren.com/jy2/jy2_pytest

代码地址

学习路线

pytest 学习路线.xmind.zip (241.3 KB)

测试用例

计算器测试用例.xlsx.zip (10.7 KB)


第一道题目

第二道题目(难度)

  • 1、使用参数化来简化测试用例,将测试数据以参数的形式传递到测试用例中
  • 2、将测试数据保存到 datas/data.yml
  • 3、创建读取数据的方法(注意编码格式)

实现参数化的注意点

1、如何划分参数化的用例

  • 经验
  • 用例中不要有复杂的业务逻辑处理

课后反馈

image

image

‘’'from func.calculator import Calculator
class Testcalc(Calculator):
def setup_class(self):
print(‘开始测试’)
def setup(self):
print(‘开始计算’)
def teardown(self):
print(‘停止计算’)
def teardown_class(self):
print(‘结束测试’)
def test_add1(self):
assert Calculator.add(self,a=1,b=1)==2

def test_add2(self):
    assert Calculator.add(self,a=-0.01,b=0.02)==0.01
def test_add3(self):
    assert Calculator.add(self,a=10,b=0.02)==10.02
def test_add4(self):
    assert Calculator.add(self,a=98.99,b=99)==197.99
def test_add5(self):
    assert Calculator.add(self,a=99,b=98.99)==197.99
def test_add6(self):
    assert Calculator.add(self,a=-98.99,b=-99)==-197.99
def test_add7(self):
    assert Calculator.add(self,a=-99,b=-98.99)==-197.99
def test_add8(self):
    assert Calculator.add(self,a='文',b=9.3)=='参数大小超出范围'
def test_add9(self):
    assert Calculator.add(self,a=4,b='字')=='参数大小超出范围''''

1、python 定义类 class
2、定义测试类 命名要以Test开头
3、定义类和方法结束位置要加:
4、if else 里面的语句要缩进

import pytest
import yaml
def get_data():
    file=open('../data/data1.yml','r',encoding='utf-8')
    a=yaml.safe_load(file)
    return a

from func.calculator import Calculator
class Testcalc():
    def setup_class(self):
        print('开始测试')
    def setup(self):
        print('开始计算')
    def teardown(self):
        print('停止计算')
    def teardown_class(self):
        print('结束测试')
    @pytest.mark.parametrize('a,b,expected',get_data())
    def test_add1(a,b,expected):
        cal=Calculator()
        assert cal.add(a,b)==expected
import pytest
import yaml

from pythonsource.calculator import Calculator


class TestCalc:

    def setup(self):
        print("开始计算!")

    def teadown(self):
        print("计算结束!")

    def teadown_class(self):
        print('结束计算')

    with open('../datas/data.yaml',encoding='utf-8') as f:
        datas = yaml.safe_load(f)
        print(datas)

    @pytest.mark.parametrize('a,b,c',datas)
    def test_add1(self,a,b,c):
        cal =  Calculator()
        result = cal.add(a,b)
        assert result == c

需要优化的点:
1、文件打开 没关闭
2、类里面的方法参数要有self