一、环境
系统 | 测试环境 | 版本 |
windows10 | python | 3.6及以上 |
Pychram | 2021.3 |
|
Selenium | 4.1.0 | |
浏览器驱动 | Chrome: -- Edge: -- |
二、测试框架-unittest
Selenium常用且兼容性更好的是pytest,但是个人觉得unittest框架也需要去熟悉一下,这里只是记录下学习笔记
a. 特点:
1. 测试发现: 从多个py文件中收集并且加载测试用例
2. 测试执行:将测试用例按照一定的顺序和条件去执行并生成结果
3. 测试判断:通过断言去判断结果是否正确
4. 测试报告:统计测试进度和通过率并生成报告
b. 默认规则
1. 测试文件必须先导入Import unittest
2. 测试类必须基础unittest.TestCase
3. 测试方法必须以test开头
c. 使用方法
1. 新建一个类的继承
class TestCase(unittest.TestCase):
xxx
2. 导入unittest
import unittest
3. 准备一个以test开头的方法:
def test_xx(self):
xxx
d. 运行方式
1. 命令行方式(推荐):
python -m unittest path\xxx.py or
示例: python -m unittest test_login.py
python -m unittest path\xx.TestCase.xx
例子python -m unittest login.TestCase.test_01_login
2. main方式
启动方式,尽量和测试用例区分路径,按下图配置
注: 本机使用了Miniconda3来构建虚拟环境,有兴趣的可以自行查看,用虚拟环境会有很多便利性,这里暂时先不提了
e. 重要组件
TestCase
import unittest
class Test(unittest.TestCase)
# 测试方法
def test_01(self):
xxxx
运行方式:
1. 在项目目录下使用unittest命令行方式运行:
python -m unittest 模块名.类名.方法名 -v -k
# 方法名为可选项,如果不带方法名,则默认运行当前类下的所有方法
-v 为输出详细结果,可选
-k 为匹配模式,可选
1). *为通配符,以字符串为结尾运行类似用例,-k *_test
2). 字符串,以具体字符串去匹配-k test2. 使用unittest.main(),以模块的方式运行
1). 配置pychram环境,Edit Configurations-->python-->add-->scrpit path-->目标模块
2). python xxx.py直接运行
运行结果:
. 代表成功
F 代表失败
E代表错误
S代表跳过
运行顺序:
按照ASCII码执行[0-9,A-Z,a-z], 实际上是按照字典的排序进行的
框架原理:
module =='__main__' # 测试用例所在路径 __main__表示当前模块,可以自定义任何模块
defaultTest=None # 需要测试的用例名称,默认为所有 例如: defaultTest=[“类.方法”]
argv=None #接收外部的参数,很少使用
testRunner=None #测试运行器,Text TestRunner
testLoader=loader.defult.TestLoader # 指定使用默认的测试用例加载器
exit=True 是否在测试完成之后结束python程序
verbosity=1 # 类似于命令行模式-v, [0是什么都没有,1是常规模式 “.”,2是详细模式 “xxxx .... ok”]
failfast=None
catchbreak=None
buffer=None
warning=None
tb_locals=False
注: 标红是经常使用的