基于python+pytest 自动化测试框架搭建【一】

本文介绍了如何在Python中使用pytest进行自动化测试,包括安装必要的库,以及Python类的定义、实例化和`__init__`方法的使用。特别强调了正确调用类方法和`__init__`方法的注意事项。
摘要由CSDN通过智能技术生成

1. 安装必要的Python库

需要安装pytest、PyYAML、以及其他可能用到的库,比如用于数据库操作的库(如psycopg2对于PostgreSQL,pymysql对于MySQL等)。终端窗口输入命令安装:

pip install pytest 
pip install PyYAML  
pip install pymysql

或者使用requrements.txt 放入所有需要安装的库。

2. python中的类与实例调用

以Student类为例,在Python中,定义类是通过class关键字:

class Student(object):
    pass

class后面紧接着是类名,即Student,类名通常是大写开头的单词,紧接着是(object),表示该类是从哪个类继承下来的,通常,如果没有合适的继承类,就使用object类,这是所有类最终都会继承的类。
以下3种方式都可以:

class Student:
    pass
    
class Student():
    pass
    
class Student(object):
    pass

根据Student类创建出Student的实例,创建实例是通过类名+()实现的:

>>> a=Student()
>>> a
<__main__.Student object at 0x1058d3520>
>>> b=Student
>>> b
<class '__main__.Student'>

变量a指向的就是一个Student的实例,后面的0x1058d3520是内存地址,每个object的地址都不一样,而Student本身则是一个类。变量b就是Student类的别名,等同于Student,注意,如果要引用类的实例,必须加上 ()

>>> Student.age=8
>>> b
<class '__main__.Student'>
>>> b.age
8
>>> Student.age
8
>>> b.age=9
>>> b.age
9
>>> Student.age
9

可以自由地给一个实例变量绑定属性


```bash
>>> b.name="SS"
>>> a.name
'SS'
>>> a.name="##"
>>> b.name
'SS'
>>> Student.name
'SS'
>>> a.sc=1
>>> Student.sc
Traceback (most recent call last):
  File "<pyshell#22>", line 1, in <module>
    Student.sc
AttributeError: type object 'Student' has no attribute 'sc'
__init__

特殊方法“__init__”前后分别有两个下划线!!!
注意到__init__方法的第一个参数永远是self,表示创建的实例本身,类似于Java的构造方法,因此,在__init__方法内部,就可以把各种属性绑定到self,因为self就指向创建的实例本身。

有了__init__方法,在创建实例的时候,就不能传入空的参数了,必须传入与__init__方法匹配的参数,但self不需要传,Python解释器自己会把实例变量传进去:

class Student(object):
    def get_name(self):
        print(("get_name 方法"))
        return self.name

    def __init__(self, name, score):
        self.name = name
        self.score = score
       
stu=Student("aa","bb")
name=stu.get_name() # 常用调用方式
name1=Student.get_name(stu) #name1 效果与name相同,2种不同调用方式
print(stu)
print(name)

输出:>>>
get_name 方法
<__main__.Student object at 0x102f5d610>
aa
get_name() missing 1 required positional argument: ‘self’

在这里插入图片描述
在类定义中直接调用实例方法 get_name,这是不正确的。在类定义中,不能直接调用需要 self 参数的方法,因为 self 代表类的实例,而在类定义中并没有实例存在。如果想要调用这个方法,需要在类的实例上调用它(如上2种不同调用方法)

和普通的函数相比,在类中定义的函数只有一点不同,就是第一个参数永远是实例变量self,并且,调用时,不用传递该参数。
Python中__init__方法源代码实现(可忽略):在这里插入图片描述-> 出现在函数名后面,描述函数的返回类型,只是为了规范,可删除。

在 Python 中,None 是一个特殊的常量,表示空或无值。它通常用于表示一个变量没有值,或者一个函数没有返回值(尽管在 Python 中,没有返回语句的函数默认返回 None)。

…(三个点)在 Python 中有几种不同的用途,但在这里它通常用作一个占位符或省略号。在类型提示或函数注释中,… 可以用来表示“此处应有更详细的类型或值,但暂时省略了”。它并不是 Python 语言的一部分,但在某些工具(如类型检查器或 IDE)中可能有特殊的意义。

当你看到 None: … 这样的结构时,这通常是在函数或方法的类型提示中。例如:

def my_function() -> None:  
    ...

这里,-> None 表示这个函数不返回任何有用的值(即返回 None)。而 … 作为函数体的一部分,是一个占位符,表示这个函数体还没有被实现。

需要注意的是,… 本身并不是 None 的值或类型。它只是一个占位符,用于表示“这里应该有一些代码,但现在还没有写”。

如果你在一个变量或表达式中看到 None: …,这可能是某种错误或误用。通常情况下,None 是一个值,而 … 是一个占位符,它们不应该直接放在一起。正确的用法是将 None 用作一个值,而将 … 用作一个占位符。

引用:https://www.liaoxuefeng.com/wiki/1016959663602400/1017496031185408

下一章yaml配置使用

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值