软件测试|Python基础之包的使用和软件开发目录规范及常用内置模块

简介: 软件测试|Python基础之包的使用和软件开发目录规范及常用内置模块

在这里插入图片描述

包的使用

  1. 什么是包
  • 指含有多个py文件的集合
  • 指内部含有__ init__ .py文件的文件的文件夹
  1. 包的具体使用
  • 常规导入

如果只是想使用包中某几个模块,只需按照常规from...import...的导入方式使用即可

  • 直接导入包名

使用import的方式直接导入包名
代码表现:
import 包名
这种方式导入的是包内__ init _ .py文件,通常包的开发人员会将包内模块名导入到这个文件中去,我们只需要通过’包‘点_' init __'点''模块名''的方式调用

软件目录开发规范

为了提高程序的可读性与可维护性,我们应该为软件设计良好的目录结构,这与规范的编码风格同等重要,简而言之就是把软件代码分文件目录,做到可读性强,可维护性高

  1. bin
  • bin 主要用来存放项目启动文件

    • start.py 启动文件可以存放在这个文件夹内,也可以直接存放在项目根目录下
  1. conf
  • conf 主要用来存放项目配置文件

    • settings.py 存放项目的默认配置,这里的文件一般全是大写
  1. core
  • core 主要用来存放项目的核心功能文件

    • src.py 项目核心功能文件
  1. interface
  • interface 主要用来存放项目接口类文件,根据具体业务逻辑划分文件

    • goods、user、account 等文件
  1. db
  • db 主要用来存放数据相关的文件(用户信息、用户账号)

    • userinfo、db_handler 等文件
  1. log
  • log 主要用来存放项目日志类型文件(项目运行情况)

    • log.log
  1. lib
  • lib 主要用来存放项目公共功能等文件

    • common.py
  1. readme
  • readme 主要用来存放项目的使用说明和一些介绍
  1. requirements
  • requirements 主要用来存放项目所需的模块和版本

常用内置模块

1、collections模块

  1. 具名元组

关键词:namedtuple(可迭代对象,导入的序列)
作用:可生成具体名称元组

导入模块:
    from collections import namedtuply

用法一:表示二位坐标
    point = namedtuple('坐标', ['x', 'y'])
    p1 = point(1, 2)
    print(p1)
    print(p1.x)
    print(p1.y)
-------------------------------------------------------------------------------------
    坐标(x=1, y=2)
    1    
    2
    
    
用法二:表示扑克牌
     card = namedtuple('扑克牌', ['num', 'color'])
    c1 = card('A', '黑♠')
    c2 = card('A', '红♥')
    print(c1, c1.num, c1.color)
    print(c2, c2.num, c2.color)
    
-----------------------------------------------------------------------------
    扑克牌(num='A', color='黑♠') A 黑♠
    扑克牌(num='A', color='红♥') A 红♥
  1. 双端队列

关键词:deque(可迭代对象,最大数据值)
作用:可生成双向列表,返回一个新的双向队列对象,从左到右初始化(用方法 append()) ,从 iterable (迭代对象) 数据创建。如果 iterable 没有指定,新队列为空。

导入模块:
    from eollections import deque

用法:
    q = deque(['a', 'b', 'c'], maxlen=10)
    # 从右边添加一个元素
    q.append('d')
    print(q) # deque(['a', 'b', 'c', 'd'], maxlen=10)

    # 从左边删除一个元素
    print(q.popleft()) # a
    print(q) # deque(['b', 'c', 'd'], maxlen=10)

    # 扩展队列
    q.extend(['i', 'j'])
    print(q) # deque(['b', 'c', 'd', 'i', 'j'], maxlen=10)

    # 查找下标
    print(q.index('c')) # 1

    # 移除第一个'd'
    q.remove('d')
    print(q) # deque(['b', 'c', 'i', 'j'], maxlen=10)

    # 逆序
    q.reverse()
    print(q) # deque(['j', 'i', 'c', 'b'], maxlen=10)

    # 最大长度
    print(q.maxlen) # 10
  1. 默认值字典

关键词:defaultdict
作用:默认字典的功能与dict基本相同,但在访问一个不存在的key时,默认字典会提供一个默认值,而不是引发异常

导入模块:
from eollections import defauldict

用法一:
     #  使用 list 作为 default_factory ,很容易将序列作为键值对加入字典:
    d = defaultdict(list)
    s = [('yellow', 1), ('blue', 2), ('yellow', 3), ('blue', 4), ('red', 1)]

    for k, v in s:
        d[k].append(v)

    print(d) # defaultdict(<class 'list'>, {'yellow': [1, 3], 'blue': [2, 4], 'red': [1]})
    
用法二:
     #  设置 default_factory 为 int ,可以很好的用于计数
    s = 'mississippi'
    d = defaultdict(int)
    for k in s:
    d[k] += 1

    print(d) # defaultdict(<class 'int'>, {'m': 1, 'i': 4, 's': 4, 'p': 2})
    
  1. 计数

关键词:Counter
作用:Counter 是一个 dict 的子类,用于计数可哈希对象

导入模块:
    from eollections import counter

用法一:统计字符串字符个数
    c = Counter()
    str_1 = 'sfsadfsdjklgsdla'
    for i in str_1:
        c[i] +=  1

    print(c) # Counter({'s': 4, 'd': 3, 'f': 2, 'a': 2, 'l': 2, 'j': 1, 'k': 1, 'g': 1})

    c2 = Counter('asfjslfjsdlfjgkls')
    print(c2) # Counter({'s': 4, 'd': 3, 'f': 2, 'a': 2, 'l': 2, 'j': 1, 'k': 1, 'g': 1})

用法二:统计列表相同数据值个数
    c = Counter(['red', 'blue', 'red', 'green', 'blue', 'blue'])
    print(c) # Counter({'blue': 3, 'red': 2, 'green': 1})

2、time时间模块

在python中,有三种表现时间的结构
1、时间戳:1970年0时0分0秒-到现在的秒速
2、结构化时间:计算机看的,人看不适应
3、格式化时间:主要是表示时间的年月日
  1. 时间戳

关键词:time
作用:打印一个时间戳

模块导入:
    import time/from time import time

    print(time.time())  # 1666170099.7668478
  1. 结构化时间

关键词:localtime
作用:打印结构化时间

模块导入:
    import time/from time import localtime

    print(time.localtime())  # time.struct_time(tm_year=2022, tm_mon=10, tm_mday=19, tm_hour=17, tm_min=4, tm_sec=16, tm_wday=2, tm_yday=292, tm_isdst=0)
  1. 格式化时间

关键词:strftime
作用:以人能看懂的方式打印时间

模块导入:
    import time/from time import strftime
    
    print(time.strftime('%y/%m/%d'))    # 22/10/19
    print(time.strftime('%y-%m-%d,%H:%M:%S'))    # 22-10-19,17:19:17
    print(time.strftime('%y年%m月%d日%H时%M分%S秒')) # 22年10月19日17时19分17秒
  1. 睡眠

关键词:sleep
作用:代码执行到此处时,可以设置暂停执行的时间

模块导入:
    import time/from time import sleep
    
    time.sleep(10)
    print('怎么还没到我~')    # 代码将在10秒后打印    
  1. datetime类
导入模块:
    import datetime
    
print(datetime.datetime.today())  # 2022-10-19 18:22:06.371652
print(datetime.datetime.now())   # 2022-10-19 18:24:13.345563
print(datetime.date.today())  # 2022-10-19
相关文章
|
1天前
|
数据采集 Web App开发 JavaScript
python-selenium模块详解!!!
Selenium 是一个强大的自动化测试工具,支持 Python 调用浏览器进行网页抓取。本文介绍了 Selenium 的安装、基本使用、元素定位、高级操作等内容。主要内容包括:发送请求、加载网页、元素定位、处理 Cookie、无头浏览器设置、页面等待、窗口和 iframe 切换等。通过示例代码帮助读者快速掌握 Selenium 的核心功能。
12 5
|
1天前
|
JavaScript Python
SciPy 教程 之 SciPy 模块列表 15
SciPy 教程之 SciPy 模块列表 15 - 功率单位。常量模块包含多种单位,如公制、质量、时间等。功率单位中,1 瓦特定义为 1 焦耳/秒,表示每秒转换或耗散的能量速率。示例代码展示了如何使用 `constants` 模块获取马力值(745.6998715822701)。
6 0
|
1天前
|
JavaScript Python
SciPy 教程 之 SciPy 模块列表 15
SciPy教程之SciPy模块列表15:单位类型。常量模块包含多种单位,如公制、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。功率单位以瓦特(W)表示,1W=1J/s。示例代码展示了如何使用`constants`模块获取马力(hp)的值,结果为745.6998715822701。
7 0
|
2天前
|
Python
SciPy 教程 之 SciPy 模块列表 13
SciPy 教程之 SciPy 模块列表 13 - 单位类型。常量模块包含多种单位:公制、二进制(字节)、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。示例:`constants.zero_Celsius` 返回 273.15 开尔文,`constants.degree_Fahrenheit` 返回 0.5555555555555556。
6 0
|
17天前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
29 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
2月前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
187 7
Jmeter实现WebSocket协议的接口测试方法
|
2月前
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
191 3
快速上手|HTTP 接口功能自动化测试
|
26天前
|
JavaScript 前端开发 API
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
35 0
|
2月前
|
JavaScript 前端开发 测试技术
ChatGPT与接口测试
ChatGPT与接口测试,测试通过
39 5
|
3月前
|
网络协议 测试技术 网络安全
Python进行Socket接口测试的实现
在现代软件开发中,网络通信是不可或缺的一部分。无论是传输数据、获取信息还是实现实时通讯,都离不开可靠的网络连接和有效的数据交换机制。而在网络编程的基础中,Socket(套接字)技术扮演了重要角色。 Socket 允许计算机上的程序通过网络进行通信,它是网络通信的基础。Python 提供了强大且易于使用的 socket 模块,使开发者能够轻松地创建客户端和服务器应用,实现数据传输和交互。 本文将深入探讨如何利用 Python 编程语言来进行 Socket 接口测试。我们将从基础概念开始介绍,逐步引导大家掌握创建、测试和优化 socket 接口的关键技能。希望本文可以给大家的工作带来一些帮助~