基于python+pytest 自动化测试框架搭建【一】
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配置使用