unittest

unittest 测试

此生再无相见时 提交于 2020-01-29 02:09:14
unittest 测试 单元测试是用来对一个模块、一个函数或者一个类来进行正确性检验的测试工作。 比如对函数 abs() ,我们可以编写出以下几个测试用例: 输入正数,比如 1 、 1.2 、 0.99 ,期待返回值与输入相同; 输入负数,比如 -1 、 -1.2 、 -0.99 ,期待返回值与输入相反; 输入 0 ,期待返回 0 ; 输入非数值类型,比如 None 、 [] 、 {} ,期待抛出 TypeError 。 把上面的测试用例放到一个测试模块里,就是一个完整的单元测试。 好处 确保一个程序模块的行为符合我们设计的测试用例。在将来修改的时候,可以极大程度地保证该模块行为仍然是正确的。 import unittest class Dict(dict): def __init__(self, **kw): super().__init__(**kw) def __getattr__(self, key): try: return self[key] except KeyError: raise AttributeError(r"'Dict' object has no attribute '%s'" % key) def __setattr__(self, key, value): self[key] = value """ 单元测试类 测试Dict""" class

unittest框架

做~自己de王妃 提交于 2020-01-28 13:07:58
About unittest是Python内置的单元测试框架(模块),不仅可以完成单元测试,也适用于web自动化测试中。 unittest提供了丰富的断言方法,判断测试用例是否通过,然后生成测试结果报告。 必要的准备与注意事项 首先,我们准备这样一个目录: M:\tests\ # 我的是M盘的tests目录,所有操作都在tests目录内完成 ├─discover │ ├─son │ │ ├─test_dict.py │ │ └─__init__.py │ ├─test_list.py │ ├─test_str.py │ └─__init__.py ├─loadTestsFromTestCaseDemo │ └─loadTestsFromTestCaseDemo.py ├─case_set.py ├─myMain.py # 代码演示文件,所有演示脚本文件 ├─test_tuple.py └─__init__.py 如果你跟我的流程走, 请务必建立和理解这样的一个目录,目前这些文件都是空的,后续会一一建立,各目录内的 __init__.py 也必须建立,虽然它是空的,但是它无比重要,因为它标明它所在目录是Python的包。 case_set.py 有4个函数,分别计算加减乘除,并且代码不变: """ 用例集 """ def add(x, y): """ 两数相加 """ return

unittest 测试函数、测试类

别说谁变了你拦得住时间么 提交于 2020-01-27 22:07:44
针对单个函数的测试 1.要测试的函数 name_function.py 1 def get_formatted_name(first, last): 2 """接受名和姓并返回整洁的姓名""" 3 full_name = first + ' ' + last 4 return full_name.title() 5 6 #函数 get_formatted_name() 将名和姓合并成姓名,在名和姓之间加上一个空格,并将它们的首字母都大写,再返回结果。 2.编写测试用例 test_name_function.py 1 import unittest #导入 unittest 模块 2 from name_function import get_formatted_name #导入要测试的函数 3 4 class NamesTestCase(unittest.TestCase): #测试用例:创建一个继承 unittest.TestCase 的类,包含一系列针对 get_formatted_name 的单元测试 5 """ 测试 name_function.py""" 6 7 def test_first_last_name(self): #编写方法对函数的行为进行测试 8 """ 检查函数 get_formatted_name() 在给定名和姓时能否正确地工作 """ 9

python单元测试-unittest

前提是你 提交于 2020-01-26 02:19:44
python内部自带了一个单元测试的模块,pyUnit也就是我们说的:unittest 1、介绍下unittest的基本使用方法: 1)import unittest 2)定义一个继承自unittest.TestCase的测试用例类 3)定义setUp和tearDown,在每个测试用例前后做一些辅助工作。 4)定义测试用例,名字以test开头。 5)一个测试用例应该只测试一个方面,测试目的和测试内容应很明确。主要是调用assertEqual、assertRaises等断言方法判断程序执行结果和预期值是否相符。 6)调用unittest.main()启动测试 7)如果测试未通过,会输出相应的错误提示。如果测试全部通过则不显示任何东西,这时可以添加-v参数显示详细信息。 2、 下面是unittest模块的常用方法: assertEqual(a, b) a == b assertNotEqual(a, b) a != b assertTrue(x) bool(x) is True assertFalse(x) bool(x) is False assertIs(a, b) a is b 2.7 assertIsNot(a, b) a is not b 2.7 assertIsNone(x) x is None 2.7 assertIsNotNone(x) x is not None 2

unittest(20)- 自动更新表格中的测试数据(1)

你。 提交于 2020-01-24 14:05:37
# 直接给出第一个手机号,而不是从excel中取数据 from openpyxl import load_workbook from tools.read_config import ReadConfig from tools import project_path class DoExcel: def get_data(self, file): wb = load_workbook(file) # 读出来的配置项是字符串格式,需要转换成字典格式 mode = eval(ReadConfig.get_config(project_path.case_config_path_auto_incre, "MODE", "mode")) tel = 15546355882 # 假设是从excel中拿到的手机号 test_data = [] for key in mode: sheet = wb[key] # 表单名 if mode[key] == "all": for i in range(2, sheet.max_row+1): row_data = {} # 数值类型读出来还是数值,不用使用函数eval转换 row_data["case_id"] = sheet.cell(i, 1).value row_data["url"] = sheet.cell(i, 2).value row

unittest(20)- 自动更新表格中的数据(3)

末鹿安然 提交于 2020-01-24 14:02:25
通过函数获取表格中的手机号 # 1. get_data.py from tools import project_path import pandas as pd class GetData: Cookie = None AddTel = pd.read_excel(project_path.test_case_path, sheet_name="phone").iloc[0, 0] # df = pd.read_excel(project_path.test_case_path, sheet_name="phone") # print(df.iloc[0, 0]) # 获取phone表单中的A1单元格的值 # 2. do_excel.py # 从表格中获取手机号,进行值的传递 from openpyxl import load_workbook from tools.read_config import ReadConfig from tools import project_path from account_auto_incre_6.get_data import GetData class DoExcel: @classmethod def get_data(cls, file): wb = load_workbook(file) # 读出来的配置项是字符串格式

unittest(20)- 自动更新表格中数据(4)

别来无恙 提交于 2020-01-24 14:00:34
# 直接利用pandas从excel中取数据 from openpyxl import load_workbook from tools.read_config import ReadConfig from tools import project_path import pandas as pd class DoExcel: @classmethod def get_data(cls, file): wb = load_workbook(file) # 读出来的配置项是字符串格式,需要转换成字典格式 mode = eval(ReadConfig.get_config(project_path.case_config_path_auto_incre, "MODE", "mode")) tel = pd.read_excel(project_path.test_case_path, sheet_name="phone").iloc[0, 0] # 假设是从excel中拿到的手机号 test_data = [] for key in mode: sheet = wb[key] # 表单名 if mode[key] == "all": for i in range(2, sheet.max_row+1): row_data = {} # 数值类型读出来还是数值,不用使用函数eval转换

unittest(20)- 自动更新表格中数据(5)

穿精又带淫゛_ 提交于 2020-01-24 13:59:09
# 1. get_data.py from tools import project_path import pandas as pd class GetData: Cookie = None AddTel = pd.read_excel(project_path.test_case_path, sheet_name="phone").iloc[0, 0] # df = pd.read_excel(project_path.test_case_path, sheet_name="phone") # print(df.iloc[0, 0]) # 获取phone表单中的A1单元格的值 # 2. do_excel.py # 从表格中获取手机号,进行值的传递 # 每次测试的手机号都不同,如果重复注册,可以使用手工测试,不必再单独写代码。 # 或者直接在表格用例中直接写死一个手机号,表格中只需要保留一个 from openpyxl import load_workbook from tools.read_config import ReadConfig from tools import project_path from account_auto_incre_6.get_data import GetData class DoExcel: @classmethod def get_data

每周一个 Python 标准库 | unittest

自作多情 提交于 2020-01-22 03:41:04
技术博客: https://github.com/yongxinz/tech-blog 同时,也欢迎关注我的微信公众号 AlwaysBeta ,更多精彩内容等你来。 unittest 是 Python 自带的单元测试框架,可以用来作自动化测试框架的用例组织执行。 优点:提供用例组织与执行方法;提供比较方法;提供丰富的日志、清晰的报告。 unittest 核心工作原理 unittest 中最核心的部分是:TestFixture、TestCase、TestSuite、TestRunner。 下面我们分别来解释这四个概念的意思,先来看一张 unittest 的静态类图: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i73bqGc5-1579601045102)(D:\work\article\unittest.png)] 一个 TestCase 的实例就是一个测试用例。什么是测试用例呢?就是一个完整的测试流程,包括测试前准备环境的搭建(setUp),执行测试代码(run),以及测试后环境的还原(tearDown)。元测试(unit test)的本质也就在这里,一个测试用例是一个完整的测试单元,通过运行这个测试单元,可以对某一个问题进行验证。 而多个测试用例集合在一起,就是 TestSuite,而且 TestSuite 也可以嵌套 TestSuite。

Android自动化测试——Appium+python+Jenkins自动化测试框架搭建

大兔子大兔子 提交于 2020-01-21 18:48:25
目录 整体知识框架 环境准备 (windows) appium安装和使用 deviceName 可通过adb devices 得到 appPackage 和appActivity 的获取:连接手机 dos 输入 Pycharm引入插件Appium-Python-Client----关联Appium 和Python ​ HTMLTestReportCN----生成测试报告 修改后的测试用例代码 : 测试用例二:FirstTest 测试用例二:SecondTest 主测试用例:使用unittest封装多个测试用例 yaml数据配置----数据分离 日志收集 logging构成 PageObject设计模式----代码封装 封装App启动配置信息 封装基类:baseview 封装通用公共类 Windows 中使用批量工具Bat文件运行测试用例 Python 启动Appium Jenkins 持续集成 整体知识框架 环境准备 (windows) 1.jdk1.8.0 (64位) 2.android-sdk(直接下载安卓studio就都有了) 3.python:3.7 4.Appium-windows-1.15.1 5.Node.js //以上安装并配置好环境变量 6.Appium-Python-Client 7.pycharm(用于编写脚本) 8.HTMLTestReportCN