百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

Unittest单元测试框架(unit test框架)

ccwgpt 2024-10-04 13:50 38 浏览 0 评论


1 unittest简介

今天介绍一个测试框架:不管我们是做接口自动化还是UI自动化,我们都要用的一个框架---unittest

unittest是python里面的一个单元测试框架,我们做自动化测试的话,都是要用到这个测试框架的(当然,我们也可以用pytest)

下面介绍下unittest的一些简单特性吧,

1、unittest在我们创建测试类的时候需要继承与unittest.TestCase

2、所有的测试方法都要以test开头

3、断言直接用自带的assert方法

4、执行测试用例;

什么是单元测试框架

  • 基于python的单元测试框架unittest、pytest
  • 基于java 的单元测试框架 Junit 、TestNG
  • 开发开方法发后自测的一种框架

2 Unittest单元测试框架的构成

  • TestCase 编写用例
  • TestSuit 组织用例
  • TestRunner 执行用例
  • TestFixture 处理用例,SetUp -预处理,用例开始,TearTown清理数据,用例结尾

3 Unittest的规则

  • 脚本文件的创建 ,以“test” 开头的.py文件
  • 测试用例方法,要以“test_"开头
  • 用例执行顺序:按照ASCII顺序从小到大执行,a-z

4 Unittest框架组织执行用例

  • unittest.main() 执行脚本中所有的testcase
  • unittest.testsuit 只执行指定的case
  • discover 执行所有脚本中的所有case

5 Unittest组织和执行的过程

  1. 编写调试线性脚本;
  2. 创建test_case 的脚本文件
  3. 组织测试用——以方法的形式组织线性脚本用例;case名称以test 开头;方法内需添加用例标题注释;抽离公共的代码部分,放在 setup,teardown方法中处理;
  4. 批量执行所有脚本用例使用discover执行所有脚本用例;生成HTML的测试报告
  5. 查看测试报告;

下面是一个测试类的demo


6 Unittest自动化断言

1)断言方法

self.assertEqual(expected,actual)
  • 判断expected = actual 表示通过,反之表示失败;
  • 适用于判断字符串、数字、布尔类型,也可以判断列表、字典、元组
self.assertIn(expected , actual)
  • 判断expected 包含于actual内,前者是后者的一部分或相等,表示通过,反之表示失败;
  • 适用于判断字符串、列表、元组
self.assertTrue(expr)
self.assertIsNone(expr)
  • 判断表达式的结果是否为真,为真表示通过,反之表示失败;
  • 适用于判断表达;

2)断言条件

  • 提示信息文本内容:driver.find_element().text
  • 页面跳转后的信息:地址、元素、title地址:driver.current_url元素:driver.find_element()title : driver.title标签属性:driver.find_element().get_attribute('')
  • 返回的数据:eg.登录后的用户名,生成的订单号

注意

  1. 用于断言的信息 要唯一;
  2. 断言前后有变化
  3. 用例中可以添加多个断言条进行验证
  4. 日志插桩和截图也可以用于辅助断言;
import unittest


def A(a, b ):
    return a+b

class TestA(unittest.TestCase):
    def setUp(self):
        self.data = [{"a": 3, "b": 5, "expect": 8},{"a": 3, "b": 3, "expect": 6}]

    def test_right(self):
        self.assertEqual(self.data[0]["expect"], A(self.data[0]["a"], self.data[0]["b"]), "用例执行失败")

    def test_right2(self):
        self.assertEqual(self.data[1]["expect"], A(self.data[1]["a"], self.data[1]["b"]), "用例执行失败")

if __name__ == '__main__':
    # 执行所有的用例
    unittest.main()

    #执行部分用例
    suit = unittest.TestSuite()
    test = [TestA("test_right"), TestA("test_right2")]
    suit.addTests(test)
    runner = unittest.TextTestRunner()
    runner.run(suit)



相关推荐

自己动手写Android数据库框架_android开发数据库搭建

http://blog.csdn.net/feiduclear_up/article/details/50557590推荐理由关于Android数据库操作,由于每次都要自己写数据库操作,每次还得去...

谷歌开源大模型评测工具LMEval,打通谷歌、OpenAI、Anthropic

智东西编译|金碧辉编辑|程茜智东西5月28日消息,据科技媒体TheDecoder5月26日报道,当天,谷歌正式发布开源大模型评测框架LMEval,支持对GPT-4o、Claude3.7...

工信部:着力推动大模型算法、框架等基础性原创性的技术突破

工信部新闻发言人今日在发布会上表示,下一步,我们将坚持突出重点领域,大力推动制造业数字化转型,推动人工智能创新应用。主要从以下四个方面着力。一是夯实人工智能技术底座。通过科技创新重大项目,着力推动大模...

乒乓反复纠结“框架不稳定”的三个小误区

很多球友由于对框架的认知不清晰,往往会把“框架不稳定”当成一种心理负担,从而影响学球进度,其典型状态就是训练中有模有样,一旦进入实战,就像被捆住了手脚。通过训练和学习,结合“基本功打卡群”球友们交流发...

前AMD、英特尔显卡架构师Raja再战GPU,号称要全面重构堆栈

IT之家8月5日消息,知名GPU架构师拉贾科杜里(RajaKoduri)此前曾先后在AMD和英特尔的显卡部门担任要职。而在今日,由Raja创立的GPU软件与IP初创企...

三种必须掌握的嵌入式开发程序架构

前言在嵌入式软件开发,包括单片机开发中,软件架构对于开发人员是一个必须认真考虑的问题。软件架构对于系统整体的稳定性和可靠性是非常重要的,一个合适的软件架构不仅结构清晰,并且便于开发。我相...

怪不得别人3秒就知道软考案例怎么做能50+

软考高级统一合格标准必须三科都达到45分,案例分析也一直是考生头疼的一门,但是掌握到得分点,案例能不能50+还不是你们说了算吗?今天就结合架构案例考点,分享实用的备考攻略~一、吃透考点,搭建知识框架从...

UML统一建模常用图有哪些,各自的作用是什么?一篇文章彻底讲透

10万+爆款解析:9大UML图实战案例,小白也能秒懂!为什么需要UML?UML(统一建模语言)是软件开发的“蓝图”,用图形化语言描述系统结构、行为和交互,让复杂需求一目了然。它能:降低沟通成本避...

勒索软件转向云原生架构,直指备份基础设施

勒索软件组织和其他网络犯罪分子正越来越多地将目标对准基于云的备份系统,对久已确立的灾难恢复方法构成了挑战。谷歌安全研究人员在一份关于云安全威胁演变的报告中警告称,随着攻击者不断改进数据窃取、身份泄露和...

ConceptDraw DIAGRAM:释放创意,绘就高效办公新未来

在当今数字化时代,可视化工具已成为提升工作效率和激发创意的关键。ConceptDrawDIAGRAM,作为一款世界顶级的商业绘图软件,凭借其强大的功能和用户友好的界面,正逐渐成为众多专业人士的首选绘...

APP 制作界面设计教程:一步到位_app界面设计模板一套

想让APP界面设计高效落地,无需繁琐流程,掌握“框架搭建—细节填充—体验优化”三步法,即可一步到位完成专业级设计。黄金框架搭建是基础。采用“三三制布局”:将屏幕横向三等分,纵向保留三...

MCP 的工作原理:关键组件_mcp部件

以下是MCP架构的关键组件:MCP主机:像ClaudeDesktop、GitHubCopilot或旅行助手这样的AI智能体,它们希望通过MCP协议访问工具、资源等。MCP主机会...

软件架构_软件架构师工资一般多少

软件架构师自身需要是程序员,并且必须一直坚持做一线程序员。软件架构应该是能力最强的一群程序员,他们通常会在自身承接编程任务的同时,逐渐引导整个团队向一个能够最大化生产力的系统设计方向前进。软件系统的架...

不知不觉将手机字体调大!老花眼是因为“老了吗”?

现在不管是联系、交友,还是购物,都离不开手机。中老年人使用手机的时间也在逐渐加长,刷抖音、看短视频、发朋友圈……看手机的同时,人们也不得不面对“视力危机”——老花眼,习惯眯眼看、凑近看、瞪眼看,不少人...

8000通用汉字学习系列讲座(第046讲)

[表声母字]加(续)[从声汉字]伽茄泇迦枷痂袈笳嘉驾架咖贺瘸(计14字)嘉[正音]标准音读jiā。[辨形]上下结构,十四画。会意形声字,从壴从加,加也表声。注:从壴,字义与鼓乐有关;从加,字义与...

取消回复欢迎 发表评论: