【Python】基础学习&技能提升&代码样例7:代码测试

Python实现XMind测试用例快速转Excel用例 XMind和Excel是在日常测试工作中最常用的两种用例编写形式,两者也有各自的优缺点 阅读详情

1. doctest

doctest用于测试

# 文件外命令测试
# file name: foo.py
"""
My square function.
Usage:
>>> a = my_square(4)
>>> b = my_square(3)
>>> a + b
25
"""
def my_square(num):
    return num * num
> python3 -m doctest foo.py # 不看详情
> python3 -m doctest -v foo.py # 看详情

# 文件内命令测试
# file-name: foo.py
"""
example usage:
>>> a, b = 2, 3
>>> a+b
5
"""
if __name__ == "__main__":
    import doctest
    doctest.testmod()
> python3 foo.py -v # 或者ide中run

2. unittest

unittest

import unittest

class TestStringMethods(unittest.TestCase):

    def test_upper(self):
        self.assertEqual('foo'.upper(), 'FOO')

    def test_isupper(self):
        self.assertTrue('FOO'.isupper())
        self.assertFalse('Foo'.isupper())

    def test_split(self):
        s = 'hello world'
        self.assertEqual(s.split(), ['hello', 'world'])
        # check that s.split fails when the separator is not a string
        with self.assertRaises(TypeError):
            s.split(2)

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

使用unittest进行测试,如果是需要实现上百个测试用例,把它们全部写在一个test.py文件中,文件会越来越臃肿,后期维护页麻烦。此时可以将这些用例按照测试功能进行拆分,分散到不同的测试文件中。
Python+Unittest - discover()构建不同目录下的用例
discover(start_dir,pattern='test*.py',top_level_dir=None)

找到指定目录下所有测试模块,并可递归查到子目录下的测试模块,只有匹配到文件名才能被加载。如果启动的不是顶层目录,那么顶层目录必须单独指定。

  • start_dir:要测试的模块名或测试用例目录
  • pattern=‘test*.py’:表示用例文件名的匹配原则。此处匹配文件名以“test”开头的“.py”类型的文件,幸好“*”表示任意多个字符
  • top_level_dir=None:测试模块的顶层目录,如果没有顶层目录,默认为None

3. PyTest

pip install pytest
使用方法 pytest test_mymod_1.py
依赖assert函数

import mymath

def test_math():
    assert mymath.add(2, 2) == 4

def test_more_math():
    assert mymath.add(3, 3) == 6
    
import pytest
@pytest.fixture
def input_value():
   input = 39
   return input

def test_divisible_by_3(input_value):
   assert input_value % 3 == 0

def test_divisible_by_6(input_value):
   assert input_value % 6 == 0

@pytest.mark.parametrize("num, output",[(1,11),(2,22),(3,35),(4,44)])
def test_multiplication_11(num, output):
   assert 11*num == output

pytest -k test_multiplication_11.py -v
test_multiplication.py::test_multiplication_11[1-11] PASSED
test_multiplication.py::test_multiplication_11[2-22] PASSED
test_multiplication.py::test_multiplication_11[3-35] FAILED
test_multiplication.py::test_multiplication_11[4-44] PASSED
============================================== FAILURES
==============================================
_________________ test_multiplication_11[3-35] __________________
num = 3, output = 35
   @pytest.mark.parametrize("num, output",[(1,11),(2,22),(3,35),(4,44)])
   def test_multiplication_11(num, output):
>  assert 11*num == output
E  assert (11 * 3) == 35
test_multiplication.py:5: AssertionError
============================== 1 failed, 3 passed, 8 deselected in 0.08 seconds
==============================

pytest.fixture:让一个函数为测试提供输入,测试函数必须将该函数名称名称作为输入参数。
Pytest中fixture的几种用法
pytest.mark.parametrize:简化代码重复输入

4. 装饰器logger_decor, 显示函数调用和运行信息

from logger_decor import tron

@tron
def f(a, b=1, *args, **kwargs):
    print('a:     ', a)
    print('b:     ', b)
    print('args:  ', args)
    print('kwargs:', kwargs)
    return a + b

f(2, 3, 4, 5, c=6, d=7)
print()
f(2, c=5, d=6)
print()
f(10)
Calling f((2, 3, 4, 5), {'c': 6, 'd': 7})
a:      2
b:      3
args:   (4, 5)
kwargs: {'c': 6, 'd': 7}
Finished f(5)
Elapsed time: 1.3589859008789062e-05

Calling f((2,), {'c': 5, 'd': 6})
a:      2
b:      1
args:   ()
kwargs: {'c': 5, 'd': 6}
Finished f(3)
Elapsed time: 5.245208740234375e-06

Calling f((10,), {})
a:      10
b:      1
args:   ()
kwargs: {}
Finished f(11)
Elapsed time: 4.291534423828125e-06
一个测试用的PYTHON代码 我只是想要试试是不是可以上传数据,请不要下载,谢谢。 立即下载

相关推荐

python的简单测试代码

python的简单测试代码,就是简单做测试用的,如果是高级用户,不要下载查看啦,谢谢

Python--测试代码

在编写函数或类时,还可为其编写测试。通过测试,可确定代码⾯对 各种输⼊都能够按要求⼯作。

qq_62254095的博客 1041

ANSYS Discovery 2023R1 入门:手把手教你玩转几何模型参数化(附历史追踪避坑指南)

本文详细介绍了ANSYS Discovery 2023R1中几何模型参数化建模的全流程,包括基础设置、参数化实战技巧及历史追踪避坑指南。通过Workbench集成和智能参数控制,工程师可以高效完成设计迭代,特别适合需要频繁调整几何模型的仿真场景。文章还提供了参数丢失的预防策略和工业应用实例,帮助用户快速掌握这一提升设计效率的核心技能。

weixin_33693070的博客 462

python-测试代码

python—测试代码

qq_61706112的博客 2324

图像处理(12)--图像各种噪声及消除方法

文章目录结构1.什么是图像噪声2. 图像噪声来源3. 噪声分类及其消除方法3.1 高斯噪声及其消除方式3.1.1 如何确定一种噪声是高斯噪声3.1.2 高斯滤波消除高斯噪声3.1.3 高斯函数的重要性质3.2 瑞利噪声及其消除方式3.3 伽马(爱尔兰)噪声及其消除方式3.4 指数分布噪声及其消除方式3.5 均匀噪声及其消除方式3.6 脉冲(椒盐)噪声及其消除方式 1.什么是图像噪声 图像噪声是指...

ShaneHolmes 11万+

带挂牵引车倒车运动模型推导及仿真实现

半挂牵引车在倒车时,由于鞍座主销的连接限制,其运动方式与乘用车有显著差异。例如,乘用车在右侧倒车入库时,只需确定泊车起点并将方向盘向右打死。相反,牵引车在倒车时需要先向左转方向盘,当铰接角达到防折叠的临界值时,再将方向盘向右转回,以调整牵引车与挂车至直线状态,完成泊车入库。本研究旨在建立一个基于牵引车带挂车倒车运动学模型,该模型基于以下假设: 道路在车辆行驶过程中保持平坦,无凹凸不平; 车辆以低速行驶,且在运行过程中车身不发生侧倾或俯仰; 行驶过程中,轮胎无变形,无侧向滑动,且不产

jianmo的博客 2697

python基础——如何测试代码?

python基础——如何测试代码?

Python单行客的博客 1020

【STM32项目】基于Stm32c8t6-镭射激光打印机的设计(完整工程资料源码)

随着打印技术的快速发展,镭射打印技术也开始得到越来越广泛的应用。这种技术可以被用于在木材、塑料、皮革、织物等各种材料上进行图形打印,并且通常比传统机器更快、更准确和更灵活。

嵌入式技术开发 7200

10个常用的python自动化测试脚本

Python是一门功能强大的编程语言,不仅可以用于开发应用程序,还可以用于自动化测试。对于测试人员来说,掌握一些简单但实用的Python自动化测试脚本,可以提高工作效率并减少重复劳动。本文将介绍10个常用的Python自动化测试脚本,并提供实际接口自动化工作中的示例代码。

xiaoganbuaiuk的博客 1万+

从 Open SQL JOIN 走向 ABAP CDS Association:把查询写成可复用的数据模型

摘要: 本文通过飞行模型示例,对比了ABAP中三种表关联实现方式:Open SQL JOIN、CDS显式JOIN和CDS Association。重点解析了Association的本质是将表关系声明为数据模型语言,使用时通过路径表达式按需展开为JOIN。文章指出路径表达式在不同位置会默认展开为不同JOIN类型(如SELECT列表默认为LEFT OUTER),并演示了如何用[inner]强制指定INNER JOIN。最后结合S/4HANA实际案例,说明Association通过中心化关系定义和路径复用,能有效

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 384

OBYC自动科目确定整理

WGI是用来重估发货的,通过比较发货时的价格和最新计算的价格,以此将所有差异过账到分配给此事务码的总账科目。是工厂还是公司,一般项目中都是使用工厂,使用工厂的意思就是物料在每个工厂下有一个价格,如果使用公司,则一个公司下的所有工厂都使用一个价格。如果该物料用的是移动平均价,那么该库存依然还存在的情况下,这个价格差异会过账到存货科目上而不会过账到存货的价格差异科目上。用于确定存货评估过账的存货冲抵科目。事务码WGR是用来重估工厂收货的,根据 计算出来的价格差异,把库存的调整过账分配给这个事务码中的总账科目。

nopicture的博客 348

普通人怎么学习python提升职场竞争力

学习Python可以提升职场竞争力,并且对于普通人来说,以下步骤可以帮助开始学习Python并在职场中更具竞争力:1. 设定学习目标:明确想要在职场中使用Python的具体领域和用途。例如,数据分析、自动化脚本编写、Web开发等。这将帮助更有针对性地学习相关的Python知识和技能。2. 学习基础知识:从基础开始学习Python编程语言,包括语法、数据类型、变量、条件语句、循环、函数等基本概念。可以通过在线教程、编程书籍、视频课程等方式学习。

2301_82275412的博客 641

从零开始讲DDR(7)——modelsim独立仿真DDR4

本文主要内容为DDR4 MIG ip核仿真,modelsim独立仿真DDR4。在进行DDR仿真的时候,我们会面临一个以往常规仿真不存在的问题:DDR本身并不是一个我们通过RTL代码设计出来的部件,常规的模块或者IP仿真,都是基于RTL代码就能进行的,但是回顾一下我们DDR的开发流程,调用的IP核也只是MIG ip,其本质是一个DDRC+DDRPYH的组合,并不能模拟任何DDR本身的行为,因此,在进行仿真之前,我们首先要做的就是获取DDR的仿真模型。

apple_53311083的博客 3226

Postman接口用例转化为python自动化测试用例

很多人可能会用postman,python,但是不会写测试脚本,想要快速写python自动化测试的脚本, postman里面有完成的用例。可是不会写python脚本,想要转化,本次呢,我就将postman复制code到python代码里面,需要的步骤。给大家讲解一下。

软件自动化测试技术交流、资源分享 864

通过Python实现物联网金橙子自动打标

对于自家公司使用金橙子打标卡时,为了与生产线或者PLC联动等,往往需要对金橙子打标卡进行二次开发,而在二次开发中不得不涉及到MarkEzd.dll这个文件,而这个dll文件网上版本多不说,一般都没法直接使用,最后还不得不花大价钱购买专用库。而本文针对这个问题,涉法通过python来绕过MarkEzd.dll文件,直接进行自动化控制EzCad来实现联动,可应用于实际生产。文章最后拓展一下以物联网的形式,实现手机平台等登录网页,输入想要的印字内容后,远程打印的案例。

lylelo的博客 3365

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Swagger Codegen 安全测试样例解析:Go 客户端如何抵御规范文件中的代码注入字符

本文以 swagger-codegen 仓库中 `samples/client/petstore-security-test/go` 目录下生成的 Go 客户端及其 [README.md](https://link.gitcode.com/i/c75b2e13bd5d0c5576c52a490fa85912) 为主体,剖析 swagger-codegen 如何将一个"故意注入恶意特殊字符"的 Sw

gitblog_00100的博客 653

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

swagger python自动化用例_swagger 自动生成接口测试用例

importrequestsimportos, jsonfrom common.writeExcel import Write_excel #写入excel模块from common.logger import Log #打印日志模块classAnalysisJson:"""swagger自动生成测试用例"""def __init__(self):url_json= ‘http://dev.s...

weixin_39621669的博客 1753

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

机器学习所需技能

摘要:机器学习作为快速发展领域,需要综合掌握编程(Python/R/Java)、统计学与数学(代数/概率/优化)、数据结构等核心技术,同时具备数据预处理、可视化及各类算法(神经网络/NLP等)的应用能力。此外还需培养问题解决、商业思维和沟通能力等软技能。这些技术与非技术能力的结合是构建有效机器学习模型、解决复杂业务问题的关键,也是机器学习从业者职业发展的必备素养。(150字)

路漫漫其修远兮,吾将上下而求索 1267

python+requests自动执行接口测试用例,并将测试结果写入用例表格

1、测试用例请求头及参数,如图一定要使用双引号,否则打开后转换格式时会报错(读取后是字符串格式,构建接口时使用的是字典格式) 2、代码部分 import json import xlrd import requests from xlutils.copy import copy # 复制函数 # 1-读取Excel测试用例 excelDir = r'E:\\用例.xls' # 1-1:打开Excel # formatting_info=True :可保留当前表格的格式(行宽,列宽等)。创建表格格式

shltest的博客 1057

python chrome调用打印的样例

python selenium 控制chrome 调用打印的时候会找不到元素,控制不到的情况 # 点击打印 wait.until(ec.presence_of_element_located((By.LINK_TEXT, "打印"))).click() # 父窗口 类名: Chrome_WidgetWin_1 标题: 中行网银(香港) - Google Chrome father = win32g...

qq_17782389的博客 3471

web自动化测试入门篇04——selenium+python基础方法封装_封装selenium的方法

其实这里面的优点也是显而易见的。第四,如果你的代码封装完善并且比较健壮且无高耦合,其实用来单独给开发做单测也是一个不错的选择,当然这里更多的还是指接口测试,众所周知基本很少有开发会在紧迫的项目时间内再给自己的程序设计一套单测代码,那么对于测试的同学来说,在实现现有代码的同时,是否可以将代码提供给开发做单模块或功能的单测就显得十分的重要了,这也是测试左移中比较典型的一个例子。元素定位自然不必多说了,web自动化中的基础操作,也是日常接触的最多的功能,封装的功能只需传两个参数,定位方式与元素对应的属性值。

2401_84159783的博客 1746

接口测试报告_纯html + Python代码

接口测试报告_纯html + Python代码   上次写了 接口测试报告的理论部分,剩下测试报告没写完,这篇就写测试报告!!!   先给大家看个图片:   当中 包含了断言结果,请求数据,响应数据,还可以通过js实时发送接口请求。但是接口需要特殊认证就没办法了。   代码我就粘在这里了需要的自取。 # -*- coding:utf-8 -*- import xml.dom.minidom...

那一缕寒意,冰封千里 1674

【干货文章】Python自动化测试用例编写方法:requests通过excel读取测试用例

关注我,每天分享软件测试技术干货、面试经验,想要领取测试资料、进入软件测试学习交流群的可以关注我的公众号【程序员小濠】 前言 编写正常的测试用例,一般都是通过excel进行编写的,当我们进行编写自动化测试用例的时,也是通过功能用例进行编写的,那么有没有方法直接通过python读取我们的excel然后完成自动化测试用例编写。 整体思路 1.通过Excel编写测试用例,整理测试数据; 2.通过Python读取Excel数据; 3.将读出来的数据进行放入到requests中进行请求并做对应断言

程序员小濠 1022

IOError: [Errno 2] No such file or directory: ‘selenium\\webdriver\\remote\\getAttribute.js‘

环境:python2.7 13 +selenium (3.4.3) 报错如下: Traceback (most recent call last): File "TestStart.py", line 17, in <module> File "DataDrawout.pyo", line 10, in <module> File "PackFunction.pyo", line 3, in <module> File "selenium\webdriv...

qq_15738571的博客 991

【如何学习Python自动化测试】—— HTMLTestRunner 生成测试报告

HTMLTestRunner是Python编程语言中的一个第三方库,它提供了一个易于使用,易于阅读和易于分享的HTML测试报告。该库适用于运行Python单元测试和集成测试,报告包括每个测试的状态,每个测试的运行时间,每个测试的失败原因等信息,并且可以将这些信息以HTML格式输出以方便查看和分享。这个库的优点是可以使测试报告易于理解,看起来更美观,帮助测试人员更准确和高效地检查测试结果。

ZShiJ的博客 2199
上一篇: 【Python】基础学习&技能提升&代码样例6:日志logging
下一篇: 【史上最全】一文搞定机器学习的模型评估
Code_LT
博客等级 码龄10年 307粉丝 182原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值