UI自动化测试之日志记录和单元测试

news2024/9/24 7:16:42

设置日志

很多公司要求自动化测试需要有日志记录。

记录程序运行时的状态和结果,方便排查问题。

实现步骤:

①在项目中创建config目录(不用创建包),复制粘贴log.conf文件

②在项目中创建logs目录,用于存放具体的日志记录信息

③编码:

import logging
import logging.config # 子模块
def get_log():
    logging.config.fileConfig('config/log.conf')
    log = logging.getLogger()
    return log
if __name__ =='__main__':
    log = get_log()
    log.info('普通信息')
    log.warning('警告信息')
    log.error('错误信息')

注意:

1 logging是内置模块,就是用来记录日志使用的。

2 log.conf配置文件是自己写死的,拿来用就行了

3 log对象的info,warning,error,既会在控制台输出,也会生成一个文件在logs中

单元测试

unittest,python的内置模块,用于实现单元测试

特点:

每个方法可以单独运行,方便进行基于方法的测试

import unittest


# 自己定义一个类继承 unittest.TestCase
class MyCase(unittest.TestCase):
    @classmethod  # 声明类方法
    def setUpClass(cls) -> None:
        print('只执行一次,开头执行')

    @classmethod
    def tearDownClass(cls) -> None:
        print('只执行一次,程序结尾')

    def setUp(self) -> None:
        print('111,每个测试用例开始都会执行我')

    def tearDown(self) -> None:
        print('222,每个测试用例结束都会执行我')

    # 具体的用例,一个方法就是一个用例,用例必须用test开头
    def test_01(self):
        print('我是测试用例1')

    def test_02(self):
        print('我是测试用例2')

# 设置主程序执行
if __name__ == '__main__':
    unittest.main()
    
'''
只执行一次,开头执行
111,每个测试用例开始都会执行我
我是测试用例1
222,每个测试用例结束都会执行我
111,每个测试用例开始都会执行我
我是测试用例2
222,每个测试用例结束都会执行我


Ran 2 tests in 0.002s
只执行一次,程序结尾

OK

'''

注意:

1 后面会详细使用,这次就记住大概的结构和运行模式

2 -> None: 是一种语法,表示建议返回值

测试断言

测试用例一定要有断言,就是测试的结果是否符合预期结果。

assert就是断言

assertIn断言是否包含

def test_01(self):
        html = '<html><body><div id="one">sss</div><body></html>'
        self.assertIn('one',html) # 断言one在html中
        print('我是测试用例1')

assertEqual 断言 是否相等

def test_02(self):
        print('我是测试用例2')
        dt = {
            'id':10,
            'user_name':'zhangsan',
            'state':'success'
        }
        res = dt['state']
        self.assertEqual('success',res)

assertTrue 断言是否为真

def test_03(self):
        print('我是测试用例3')
        res = True
        self.assertTrue(res)

最后: 为了回馈铁杆粉丝们,我给大家整理了完整的软件测试视频学习教程,朋友们如果需要可以自行免费领取 【保证100%免费】

 全套资料获取方式:点击下方小卡片自行领取即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/833745.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第三方材料检测实验室LIMS系统源码 lims源码

实验室LIMS系统采用国际规范的业务管理流程和严格的质量控制体系&#xff0c;对每个检测流程节点采用 “人、机、料、法、环、测”进行质量控制&#xff0c;可记录&#xff0c;可追溯。强大的数据查询和统计分析能力&#xff0c;提高工作效率&#xff1b;自动化地采集实验室原始…

轻量化YOLOv5改进 | 结合repghost结构冲参数化网络,实现轻量化和加速推理,

RepGhost: A Hardware-Efficient Ghost Module via Re-parameterization 论文总结本文改进repghost 核心代码测试参数量和计算量🔥🔥🔥 “引入RepGhostNet以加速CNN网络推理” “网络宽度的自定义调整:无缝嵌入YOLOv5” “通过结构重参数化优化网络性能” “实现高效和…

nexus迁移

数据和配置迁移 打包两个目录&#xff0c;配置nexus-2.13.0-01和数据sonatype-work 数据量大可以split分割之后迁移再合并 大概看下文件目录 [roottest nexus]# tree -L 3 . ├── nexus-2.13.0-01 │ ├── bin │ │ ├── jsw │ │ ├── nexus │ │ …

拥抱未来:2023年及以后十大DevOps工具的最终清单!

软件开发和 IT 运营的世界在不断发展&#xff0c;DevOps 已成为寻求敏捷性、效率和协作的组织的重要方法。随着我们进入 2023 年及以后&#xff0c;DevOps 格局将随着新工具的引入和现有工具的改进而不断发展。在本文中&#xff0c;我们列出了将在未来几年塑造行业的十大DevOps…

2023年08月IDE流行度最新排名

点击查看最新IDE流行度最新排名&#xff08;每月更新&#xff09; 2023年08月IDE流行度最新排名 顶级IDE排名是通过分析在谷歌上搜索IDE下载页面的频率而创建的 一个IDE被搜索的次数越多&#xff0c;这个IDE就被认为越受欢迎。原始数据来自谷歌Trends 如果您相信集体智慧&am…

如何克服看到别人优于自己而感到的焦虑和迷茫?

文章目录 每日一句正能量前言简述自己的感受怎么做如何调整自己的心态后记 每日一句正能量 行动是至于恐惧的良药&#xff0c;而犹豫、拖延&#xff0c;将不断滋养恐惧。 前言 虽然清楚知识需要靠时间沉淀&#xff0c;但在看到自己做不出来的题别人会做&#xff0c;自己写不出的…

2023华数杯数学建模A题2023华数杯A 题隔热材料的结构优化控制研究

问题1 问题1&#xff1a; 该问题需要建立一个数学模型来描绘织物整体热导率与单根纤维热导率之间的关系。这个模型需要考虑织物的结构&#xff08;如纤维的排列、空隙大小和分布等&#xff09;以及纤维和空隙中的空气对热传导的贡献。此外&#xff0c;我们需要根据织物的整体热…

网页版Java五子棋项目(一)websocket【服务器给用户端发信息】

网页版Java五子棋项目&#xff08;一&#xff09;websocket【服务器给用户端发信息】 一、为什么要用websocket二、websocket介绍原理解析 三、代码演示1. 创建后端api&#xff08;TestAPI&#xff09;新增知识点&#xff1a;extends TextWebSocketHandler重写各种方法 2. 建立…

LeetCode--剑指Offer75(2)

目录 题目描述&#xff1a;剑指 Offer 58 - II. 左旋转字符串&#xff08;简单&#xff09;题目接口解题思路1代码解题思路2代码 PS: 题目描述&#xff1a;剑指 Offer 58 - II. 左旋转字符串&#xff08;简单&#xff09; 字符串的左旋转操作是把字符串前面的若干个字符转移到…

Win11系统下FTP服务器搭建(用于Cadence 中心库服务器搭建)(上)

本文用于快速搭建一个FTP服务器 一、配置IIS Web服务器 使用快捷键【Win R】打开运行窗口&#xff0c;并输入optionalfeatures进入配置windows功能&#xff1b; 选择红框标识选项后&#xff0c;点击确定。 二、配置IIS web 站点 1.首先我们在本地创建一个ftp服务器的根目录…

【Pycharm2022.2.1】python编辑器最新版安装教程(包含2017-2022的所有版本win/mac/linux)

前言 嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! 永久安装 Pycharm&#xff08;2017-2022的win/mac/linux所有版本&#xff09;/ IntelliJ IDEA也可以, 按照本文教程所写的&#xff0c;具体步骤跟着下面的图文教程一步一步来就行&#xff0c;一分钟即可搞定&#xff0c;过…

超详情的开源知识库管理系统- mm-wiki的安装和使用

背景&#xff1a;最近公司需要一款可以记录公司内部文档信息&#xff0c;一些只是累计等&#xff0c;通过之前的经验积累&#xff0c;立马想到了 mm-wiki&#xff0c;然后就给公司搭建了一套&#xff0c;分享一下安装和使用说明&#xff1a; 当前市场上众多的优秀的文档系统百…

从零搭建一个react + electron项目

最近打算搭建一个react electron的项目&#xff0c;发现并不是那么傻瓜式 于是记录一下自己的实践步骤 通过create-react-app 创建react项目 npx create-react-app my-app 安装electron依赖 npm i electron -D暴露react项目的配置文件&#xff08;这一步看自己需求&#xff0c…

Golang之路---03 面向对象——类型断言

类型断言 作用 检查 i 是否为 nil检查 i 存储的值是否为某个类型 使用方式 第一种&#xff1a; t : i.(T)这个表达式可以断言一个接口对象&#xff08;i&#xff09;里不是 nil&#xff0c;并且接口对象&#xff08;i&#xff09;存储的值的类型是 T&#xff0c;如果断言成…

什么是文件传输协议:文件传输协议初学者介绍

FTP&#xff08;文件传输协议&#xff09;是一种在TCP / IP&#xff08;传输控制协议/ Internet协议&#xff09;网络&#xff08;也就是Internet&#xff09;上实现计算机之间交换和分享文件的方法。用户只要获得了访问权限&#xff0c;就可以在文件传输协议服务器&#xff08…

c++学习(lambda+bind)[27]

lambda 本质&#xff1a;编译器生成一个类 简单的lambda函数 int mian() {//两个数相加的lambdaauto add1 [](int a, int b)->int{return a b; };cout << add1(1, 2) << endl;//省略返回值auto add2 [](int a, int b){return a b; };cout << add2…

国标GB28181视频监控EasyGBS接入大量通道,创建角色接口未响应

国标GB28181协议视频平台EasyGBS是基于国标GB28181协议的视频云服务平台&#xff0c;支持多路设备同时接入&#xff0c;并对多平台、多终端分发出RTSP、RTMP、FLV、HLS、WebRTC等格式的视频流。平台可提供视频监控直播、云端录像、云存储、检索回放、智能告警、语音对讲、平台级…

SAN共享存储架构

SAN共享存储架构 概述 近年在高性能专用存储网络需求的驱使下&#xff0c;许多SAN存储系统应用于高性能计算网络系统、大型网站系统、非线性编辑系统等网络系统中&#xff0c;存储设备与计算机主机系统之间一对一的关系&#xff0c;被可供多个计算机主机共享读写同一个存储设…

预测狗狗币价格 -- 机器学习项目基础篇(5)

Dogecoin(狗狗币)是一种加密货币&#xff0c;就像以太坊或比特币一样-尽管它与这两种着名的硬币完全不同。Dogecoin最初在某种程度上是作为加密爱好者的一个笑话&#xff0c;并从一个以前众所周知的模因中取了它的名字。 在本文中&#xff0c;我们将实现一个机器学习模型&#…

LabVIEW开发高压航空航天动力系统爬电距离的测试

LabVIEW开发高压航空航天动力系统爬电距离的测试 更多电动飞机MEA技术将发电&#xff0c;配电和用电集成到一个统一的系统中&#xff0c;提高了飞机的可靠性和可维护性。更多的电动飞机使用更多的电能来用电动替代品取代液压和气动系统。对车载电力的需求不断增加&#xff0c;…