Unittest-单元测试

Unittest-单元测试,第1张

一、什么是框架?

框架为开发研发的应用骨架,对基础代码的封装并且提供API接口,其他开发者可直接调用封装好的API接口。提高效率。

测试:selenium是框架?

find_element_by_id()

二、什么是自动化框架以及它的作用

(1)自动化框架

自动化测试leader为了对一个系统做自动化测试而封装的一个代码主骨架,其他的自动化测试工程师只需要去调用这样骨架里面的方法就可以事实自动化测试,这个代码骨架就叫自动化框架

(2)自动化框架的作用

1.提高测试效率,降低维护成本。

2.减少人工干预脚本因素

3.增加代码的可重用率

(3)unittest单元测试框架和自动化测试框的关系

单元测试:指的是针对我们程序的最小单元(方法)进行测试

unittest是它自动化框架的重要的组成部分之一

pom自动化框架的重要的组成部分之一

ddt数据驱动:自动化框架的重要的组成部分之一

全局配置文件封装:自动化框架的重要的组成部分之一

selenium二次封装:自动化框架的重要的组成部分之一

日志监控:自动化框架的重要的组成部分之一

断言,邮件发送。。。。

三、单元测试框架对比

基于Python语言:unittest和pytest

基于Java语言:junit和testng

1.用例编写规则

unittest:提供了testcases测试用例、testsuites测试套件、testfixtures测试固件或夹具、 testloader测试加载器,testrunner测试运行器。必须遵守以下规则:

  1. 测试文件必须先导入import unittest
  2. 测试类必须集成unittest.TestCase
  3. 测试方法必须以test开头

pytest:它是python的第三方测试框架。基于unittest的扩展框架,必须遵守以下规则:

  1. 测试文件名必须以test_开头或者是_test结尾
  2. 测试类命令必须以Test开头
  3. 测试方法必须test开头

2.用例的前置和后置

unittest:

setUp/tearDown在每个用例之前或之后运行一次

打开浏览器,加载网页/关闭网页

setUpClass和tearDownClass在每个类运行之前或之后运行一次

创建数据库链接,创建日志对象/关闭数据库链接,销毁日志对象

setUpModule和tearDownModule在每个模块之前和之后执行一次

pytest:

方法级:setup_mothod/teardown_mothod 在方法之前和之后

setup_mothod/teardown_mothod 在方法之前和之后

setup/teardown

函数级:

setup_function/teardown_function 在函数之前和之后

类级:

setup_class/teardown_class

模块:

setup_module/teardown_module

还有:还可以在函数之前加@pytest.fixture()

3.断言

Unitest:asserTrue,asserEqual,assertIn

Pytest:assert

4.报告

Unittest:htmltestrunner

Pytest:插件:pytest-HTML,allure

5.失败重跑

Unittest:没有

Pytest:pytest-rerunfailures插件

6.数据驱动

Unittest:ddt

Pytest:@pytes.mark.parametrize装饰器

7.用例分类执行

Unittest:默认执行所有,也可以通过testsuite来执行部分用例,或者-k参数。

Pytest:@pytest.mark

  • unittest框架主要做了什么?

  1. 测试发现:从多个py文件中收集并加载测试用例
  2. 测试执行:将测试用例按照一定的顺序和条件去执行并生成结果
  3. 测试判断:通过断言去判断结果是否正确
  4. 测试报告:统计测试进度,通过率,生成报告

  • unittest重要组件

1.TestCase

2.TestSuite

3.TestFixture

4.TestLoader

5.TestRunner

今天个人笔记到这里!!!!!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/715310.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-25
下一篇 2022-04-25

发表评论

登录后才能评论

评论列表(0条)

保存