• 0
  • 0
分享

一、单元测试框架

1.什么是单元测试框架

单元测试框架是在自动化测试或者白盒测试中对软件的最小单元(函数,方法)进行测试的框架。

2.单元测试框架分类

python:unittest、pytest

3.单元测试框架主要做什么?

发现测试用例

执行测试用例

判断测试结果

生成测试报告

二、pytest简介以及常用插件安装

1、pytest是一个非常成熟的单元测试框架,灵活和简单。

2、它可以结合selenium、request、appium完成各种不同的自动化。

3、它还可以生成自定义allure报告以及Jenkins持续集成。

4、pytest还有很多强大的插件:

pytest

pytest-html(生成html报告的插件)

pytest-xdist(多线程运行的插件)

pytest-ordering(改变用例的执行顺序的插件)

pytest-rerunfailures(失败用例重新执行的插件)

allure-pytest(生成美观的自定义的allure报告)

通过在项目的根目录下新建一个:requirements.txt文件保持插件。然后通过以下命令安装:

pip install -r requirements.txt

三、pytest默认测试用例的规则以及基础应用

1、模块名必须以test_或者_test结尾。

2、测试类必须以Test开头,并且不能带有init方法。

3、测试用例必须以test_开头。

执行:Alt+enter自动导包

1.通过命令方式执行

pytest

执行的参数:

-vs        -v输出详细信息。 -s输出调试信息。如 :pytest -vs

-n          多线程运行。(提前安装插件:pytest-xdist)如:pytest -vs -n=2

-reruns num   失败重跑 (提前安装插件:pytest-rerunfailres)如:pytest -vs -reruns=2

                        raise Exception()抛出异常

                        try except                解决异常

-x                出现一个用例失败则停止测试。如:pytest -vs -x

--maxfail        出现几个用例失败才停止,如:pytest -vs --maxfail=2

--html        生成html的测试报告(提前安装插件:pytest-html)如:pytest -vs --html/.reports/result.html

-k                运行测试用例名称中包含某个字符串的测试用例。如:pytest -vs -k "demo1"

-m "smoke"        只执行冒烟用例                如:pytest -vs -m "smoke"               

2.通过主函数main方式执行。

if __name__ == '__main__':
    pytest.main(["-vs"])

3.通过全局配置文件pytest.ini文件执行。

注意:

一般放在项目的根目录下,名称必须是pytest.ini

编码格式为ANSI,当有中文时可能需要改变编码格式为GB2312

pytest.ini文件可以改变默认的测试用例规则

不管是命令行运行还是主函数运行,都会加载这个配置文件

[pytest]
# 参数
# 具体传参
addopts = -vs   
# 执行的测试用例的路径
testpaths = ./testcase
# 执行的模块
python_files = test_*.py
# 执行的类
python_classes = Test*
# 执行的函数
python_functions = test_*
# 测试用例分组执行进行标记
markers =
    smoke : 冒烟用例
    authority_manage : 权限管理
    menu_manage : 菜单管理

四、pytest跳过测试用例

(1)无条件跳过

@pytest.mark.skip(reason="无理由跳过")

(2)有条件跳过

@pytest.mark.skipif(time_age<10, reason="年龄小于10跳过")

五、pytest测试用例的前后置,固件

class CommonUtil:
 
    def setup_class(self):
        print("每个类之前执行一次")
 
    def teardown_class(self):
        print("每个类之后执行一次")
 
    def setup(self):
        print("每个用例之前执行一次")
 
    def teardown(self):
        print("每个用例之后执行一次")

用例demo:

import pytest
import time
 
from common.common_util import CommonUtil
 
class TestCeshi(CommonUtil):
    time_age = 8
 
    @pytest.mark.smoke
    def test_demo1(self):
        print("测试第一条用例")
        raise Exception("这条用例挂了")
 
    def test_demo2(self):
        print("测试第二条用例")
 
    @pytest.mark.skip(reason="无理由跳过")
    def test_demo3(self):
        print("测试第三条用例")
 
    @pytest.mark.skipif(time_age < 10, reason="年龄小于10跳过")
    def test_demo4(self):
        print("测试第四条用例")
        
    def test_demo5(self):
        print("测试第五条用例")


作者:Jerry Lee~

原文链接:https://blog.csdn.net/weixin_44993143/article/details/124599698

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 敏捷开发迭代速度快?开发完上线之后找不到相应人员?下一轮优化时不知从何下手?相信大家在平时的工作中都遇到过相关的问题,究其原因是没有留足够的时间进行相关文档的沉淀和归档,导致后来人员对于之前的项目不够熟悉,不知道如何下手。所谓好记性不如烂笔头,结束一个项目时抽空整理出相关的特点,给后来人一个大概的论述,相信能很好的发挥承上启下的作用。很感谢我的上一任上司,她督促我们每一个版本都需要养成总结文档的习惯,写功能说明文档的习惯也是从这个时候慢慢继承下来的。这里说的继承者是指——功能说明文档。每个专项开展测试,有新功能的时候都会测的热火朝天,但是测试结束之后,这个功能交接给另外的同学时或者合并到系统项...
            8 5 7438
            分享
          •   中国电动汽车巨头比亚迪正准备进军加拿大市场。据 Automotive News 报道,比亚迪近期聘请了游说人士,为其进入加拿大市场销售乘用电动汽车、建立新业务以及应对可能征收的电动汽车关税提供咨询。此外,比亚迪已开始与加拿大汽车经销商接洽,为建立销售渠道做准备。  为了应对中国电动汽车行业的快速崛起,美国政府近期采取了对中国进口电动汽车征收了 100% 关税的举措,并采取其他措施鼓励电动汽车相关制造业的本土化和友岸外包。加拿大也在考虑效仿美国和欧盟,对中国电动汽车征收类似的关税。  由于无法直接进入美国市场,中国电动汽车企业可能会寻求绕道进入全球最大的汽车市场之一。有汽车行业分析师表示,这...
            0 0 448
            分享
          •   顺丰集团宣布,顺丰国际与亚马逊海外购联合推出全新直邮服务,“为跨境电商和国际贸易的客户提供更加高效和便捷的物流服务”。  官方介绍称,全新的端到端顺丰国际直邮解决方案不仅可以提供更快速的国际物流服务,简化清关流程,还可实现更透明的全链路物流追踪。此次合作将大大缩短货物从美国到中国的运输时间(具体时间未说明),确保更多来自亚马逊全球运营中心的优质海外商品由顺丰在短时间内送达中国消费者手中。  亚马逊中国副总裁、亚马逊海外购中国及亚马逊新加坡电商负责人李岩川表示:  此次与顺丰国际合作推出的跨境直邮服务,是亚马逊海外购提升跨境物流体验的新一步。通过本次合作,亚马逊海外购将继续为中国消费者提供更...
            0 0 508
            分享
          • 对于业内人士而言,软件测试要做到与时俱进还真不容易。因为测试团队与领导之间在测试方法、测试地点和时间问题上有着许多误解,所以使得准时的、高质量的发布具有一定的挑战性。如果高层领导从测试之初就参与进来,你就能够克服很多这样的问题。虽然他们不会参与到实际测试,但是他们能够从基层了解到从测试到交付一个优质软件需要做到什么。通过设定明确的质量预期,并了解满足测试团队的需求(例如培训、练习、工具等等),才能从顶层建立领导力。由于公司在持续交付中进行测试,测试计划的必要成为他们质疑的一点。现代测试计划可以为构建和传达测试策略和方法提供帮助。他们给测试团队提供的是交流各类假设和方法的渠道,其中也包括了对测试...
            0 1 1537
            分享
          • 读者提问:对于测试架构师日常工作中做哪些事情我还挺好奇的,这个岗位似乎还挺稀缺的,我所经历的公司没有这个岗位。我对测试架构师的理解就是技术架构师,主要是做技术选型,以及带领整个团队做技术提升的。不知道软件测试架构师在实际工作中,都做哪些事情呢?阿常回答:一家业务体系庞大、复杂的公司的测试架构师的职责主要有五个。1、测试团队的技术带头人测试架构师会关注整个团队的技术提升,包括技术难题的攻关,团队遇到的技术难题,你能够做到 90%的解决率。2、深入参与关键业务的评审关注软件的可测试性,作为测试 leader、项目负责人或者测试架构师需要深入参与技术架构的选型,包括前期的概要设计,给出建议。3、测试...
            0 0 1280
            分享
      • 51testing软件测试圈微信