单元测试框架中测试用例的执行顺序

一、用例用例全部执行与选择执行

单元测试用例的执行顺序按照定义的用例的名称的编码大小,从小到大依次执行,因此一般通过后缀001、002...等来规划测试用例的执行顺序,例如:

import unittest

class F1(unittest.TestCase):
    def setUp(self):
        print('我已经做好了准备工作')

    def tearDown(self):
        print('已处理')

    def test_001(self):    #单独执行其中的一个用例,鼠标放在这行里,右键点击执行
        print('test001')

    def test_002(self):
        print('test002')

    def test_003(self):
        print('test003')

if __name__ == '__main__':
    unittest.main(verbosity=2)    #执行所有的用例,鼠标放在这行里,右键点击执行

鼠标放到main方法中,右键选择文件执行会执行所有的测试用例,结果为:

如果只执行其中的一条用例则鼠标放在这个用例的方法中右键选择文件执行会只执行这一条用例

# 执行所有用例的运行结果
Testing started at 上午11:32 ...
/Users/ligaijiang/PycharmProjects/interfaceTest2/venv/bin/python /Applications/PyCharm.app/Contents/helpers/pycharm/_jb_unittest_runner.py --path /Users/ligaijiang/PycharmProjects/interfaceTest2/pythonstudying/unittest/ut1.py
Launching unittests with arguments python -m unittest /Users/ligaijiang/PycharmProjects/interfaceTest2/pythonstudying/unittest/ut1.py in /Users/ligaijiang/PycharmProjects/interfaceTest2/pythonstudying/unittest
我已经做好了准备工作
test001
已处理
我已经做好了准备工作
test002
已处理
我已经做好了准备工作
test003
已处理


Ran 3 tests in 0.002s

OK

Process finished with exit code 0

二、单元测试用例的执行顺序

执行以下测试用例,会先执行map再执行news,虽然news写在来前面

import unittest
from selenium import webdriver
import time

class F3(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Firefox()
        self.driver.maximize_window()
        self.driver.implicitly_wait(30)
        self.driver.get('https://www.baidu.com/')


    def tearDown(self):
        self.driver.quit()

    def test_baidu_news(self):
        self.driver.find_element_by_link_text('新闻').click()
        time.sleep(5)

    def test_baidu_map(self):
        self.driver.find_element_by_partial_link_text('图').click()
        time.sleep(5)

if __name__ == '__main__':
    unittest.main(verbosity=2)  

通过验证可以发现m的编码为109,n的编码为110,因此先执行的m开头的,再执行的n开头的

Last login: Wed May 13 17:33:51 on ttys004
(base) localhost:~ ligaijiang$ python
Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 26 2018, 23:26:24) 
[Clang 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> ord('n')
110
>>> ord('m')
109
>>> 

三、单元测试用例使用套件控制浏览器的打开次数

以下方式,浏览器会只打开一次,执行两个测试用例后关闭一次,结束:

import unittest
from selenium import webdriver
import time


class F2(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
        cls.driver=webdriver.Firefox()
        cls.driver.maximize_window()
        cls.driver.implicitly_wait(30)
        cls.driver.get('https://www.baidu.com/')

    @classmethod
    def tearDownClass(cls):
        cls.driver.quit()

    def test_baidu_news_001(self):
        self.driver.find_element_by_link_text('新闻').click()
        time.sleep(10)
        self.driver.back()


    def test_baidu_map_002(self):
        self.driver.find_element_by_partial_link_text('图').click()
        time.sleep(15)
        self.driver.back()

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

以下方式,浏览器会打开一次,执行用例001,关闭;浏览器再次打开,执行用例002,关闭

import unittest
from selenium import webdriver
import time

class F3(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Firefox()
        self.driver.maximize_window()
        self.driver.implicitly_wait(30)
        self.driver.get('https://www.baidu.com/')


    def tearDown(self):
        self.driver.quit()

    def test_baidu_news_001(self):
        self.driver.find_element_by_link_text('新闻').click()
        time.sleep(5)

    def test_baidu_map_002(self):
        self.driver.find_element_by_partial_link_text('图').click()
        time.sleep(5)

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

总结:

感谢每一个认真阅读我文章的人!!!

我个人整理了我这几年软件测试生涯整理的一些技术资料,包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。欢迎大家点击下方名片免费领取,千万不要错过哦。

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

3D Tiles官方示例资源下载链接

本文列出Cesium官方提供的 3D Tiles 1.0和1.1规范的9个示例切块集(tileset)。 有关如何使用本地服务器托管这些示例的详细信息,请参阅 INSTRUCTIONS.md。 推荐:用 NSDT设计器 快速搭建可编程3D场景。 1、Metadata Granularities …

【java线上监控】Arthas由菜鸟到菜鸡

目录 1 arthas介绍 1.1 简介 1.2 背景 1.3 Arthas(阿尔萨斯)能为你做什么? 2 window环境搭建 2.1 下载和启动 2.1 启动后:选择需要监控的服务 3 快速入门 3.1 打开浏览器 3.2 开启trace请求 3.3 查看 dashboard 3.6.…

在人间烟火里,卡萨帝开启品牌新征程

大暑刚过天正热,尤其是在今年厄尔尼诺现象席卷太平洋的背景下,人们对空调的需求持续“升温”。CCTV2财经频道《正点财经》在专题报道中提到,6月国内空调产销两旺,同比增长均在35%以上。 炙热的天气下,南方居民有更加难…

fiddler 手机抓包(含https) 完整流程

第一部分:下载并安装fiddler 一.使用任一浏览器搜索【fiddler下载安装】,并下载fiddler 安装包。 二.fiddler安装包下载成功后,将下载的fiddler压缩包解压到自定义文件夹【fiddler】或者解压到当前文件夹下,双击文件夹中的【fidd…

哈工大计算机网络课程局域网详解之:交换机概念

哈工大计算机网络课程局域网详解之:交换机概念 文章目录 哈工大计算机网络课程局域网详解之:交换机概念以太网交换机(switch)交换机:多端口间同时传输交换机转发表:交换表交换机:自学习交换机互…

【SCSS】网格布局中的动画

效果 index.html <!DOCTYPE html> <html><head><title> Document </title><link type"text/css" rel"styleSheet" href"index.css" /></head><body><div class"container">&l…

RabbitMQ 教程 | 第3章 客户端开发向导

&#x1f468;&#x1f3fb;‍&#x1f4bb; 热爱摄影的程序员 &#x1f468;&#x1f3fb;‍&#x1f3a8; 喜欢编码的设计师 &#x1f9d5;&#x1f3fb; 擅长设计的剪辑师 &#x1f9d1;&#x1f3fb;‍&#x1f3eb; 一位高冷无情的编码爱好者 大家好&#xff0c;我是 DevO…

什么是云原生和 CNCF?

一、CNCF简介 CNCF&#xff1a;全称Cloud Native Computing Foundation&#xff08;云原生计算基金会&#xff09;&#xff0c;成立于 2015 年 12 月 11 日&#xff0c;是一个开源软件基金会&#xff0c;它致力于云原生&#xff08;Cloud Native&#xff09;技术的普及和可持续…

Docker中gitlab以及gitlab-runner的安装与使用

1、本文主要讲述如何使用Docker安装gitlab以及gitlab-runner&#xff0c;并且会讲述gitlab-runner如何使用 2、gitlab部分不需要修改过多的配置即可使用&#xff0c;本文未讲述https配置&#xff0c;如有需求&#xff0c;可自行百度 3、Docker如何安装可以自行百度 一、Docker安…

保姆级教程,Linux服务器docker搭建jenkins持续集成一键部署SpringBoot项目(Gradle)

前言&#xff1a; 在后台项目开发过程从Java延伸到Kotlin开发&#xff0c;从maven pom到gradle&#xff0c;IDEA新项目SpringBoot init框架官方推荐kotlingradle&#xff0c;本章以此为jenkins持续集成做项目部署&#xff0c;服务器为Centos&#xff0c;JDK 17&#xff0c;Spr…

【C++】文件操作(囊括特殊情况:读文件遇到的空格被跳过、“文件只读一次“)

author&#xff1a;&Carlton tag&#xff1a;C topic&#xff1a;【C】文件操作&#xff08;囊括特殊情况&#xff1a;读文件遇到的空格被跳过、“文件只读一次”&#xff09; website&#xff1a;黑马程序员C date&#xff1a;2023年7月31日 目录 文本文件 写文件 源…

如何在面试IT公司时展现出色的表现

在面试IT技术岗位的过程中&#xff0c;展现出色的表现是至关重要的。下面我将分享一些我个人的经验和观察&#xff0c;希望对大家有所帮助。 首先&#xff0c;提前准备是非常重要的。在面试前&#xff0c;你应该充分了解目标公司的业务和技术需求。这样你就能更好地回答面试官…

基于Java+SpringBoot+Vue前后端分离电商项目

晚间lucky为友友们送福利啦~&#x1f381; Tips&#xff1a;有需要毕业设计指导的童鞋一定要认真看哦&#xff0c;文末有彩蛋。 一.项目介绍 该电商项目是一个简单、入门级的电商项目&#xff0c;是基于JavaSpringBootVue前后端分离项目。前端采用两套独立的系统分别完成项目…

手机的python怎么运行文件,python在手机上怎么运行

大家好&#xff0c;小编来为大家解答以下问题&#xff0c;手机上的python怎么运行程序&#xff0c;手机的python怎么运行文件&#xff0c;今天让我们一起来看看吧&#xff01; 1、python程序怎么在手机上运行 python语言应用很广泛&#xff0c;自己也很喜欢使用它&#xff0c;其…

【机器学习】Cost Function for Logistic Regression

Cost Function for Logistic Regression 1. 平方差能否用于逻辑回归&#xff1f;2. 逻辑损失函数loss3. 损失函数cost附录 导入所需的库 import numpy as np %matplotlib widget import matplotlib.pyplot as plt from plt_logistic_loss import plt_logistic_cost, plt_two_…

【自动化剧本】Role角色

目录 一、Roles模块1.1roles的目录结构1.2roles 内各目录含义解释1.3在一个 playbook 中使用 roles 的步骤 二、使用Role编写LNMP剧本2.1 搭建Nginx角色2.2搭建Mysql角色2.3搭建php角色2.4lnmp剧本 一、Roles模块 roles用于层次性、结构化地组织playbook。roles能够根据层次型结…

vue基础-虚拟dom

vue基础-虚拟dom 1、真实dom目标2、虚拟dom目标 1、真实dom目标 在真实的document对象上&#xff0c;渲染到浏览器上显示的标签。 2、虚拟dom目标 本质是保存节点信息、属性和内容的一个JS对象 更新会监听变化的部分 给真实的DOM打补丁

vue 表单form-item模板(编辑,查看,新建)

目录 formatFormData 后端数据格式​编辑 JSON解析和生成 加载&#xff08;请求前&#xff0c;await后&#xff09; formComp formatFormData 后端数据格式 为空的&#xff0c;可以直接不提交/提交null/undefined JSON解析和生成 var str {"name": "…

容斥原理 训练笔记

​ 容斥原理 设S是一个有限集&#xff0c;A_1,A_2…A_n是S的n个子集&#xff0c;则 ∣ S − ⋃ i 1 n A i ∣ ∑ i 0 n ( − 1 ) i ∑ 1 ≤ j 1 < j 2 . . . < j i ≤ n ∣ ⋂ k 1 i A j k ∣ |S-\bigcup_{i1}^{n}A_i|\sum_{i0}^{n}(-1)^i\sum_{1\leq j_1< j_2.…

windows如何上架ios应用到app store

Application Uploader iOS App上架工具是一款非常好用的针对iOS苹果应用程序软件开发的实用编程工具&#xff0c;它的主要作用是帮助用户进行快速的程序应用设计和程序应用调试&#xff0c;节省用户进行软件开发耗费的不必要时间&#xff01; ​ 编辑切换为居中 添加图片注释&…