[Selenium Web UI自动化测试笔记-unittest]

一、环境

系统 测试环境 版本
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来构建虚拟环境,有兴趣的可以自行查看,用虚拟环境会有很多便利性,这里暂时先不提了

[Selenium Web UI自动化测试笔记-unittest]

 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 test

2. 使用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

注: 标红是经常使用的


TestSuite

上一篇:httprunner(3)用脚手架快速搭建项目


下一篇:今天一篇文章告诉你Python 自动化测试 必会模块 Unittest