㈠ 使用yaml文件管理测试数据
知道ddt的基本使用方法之后,练习把之前用excel文件来维护的接口测试用例改用unittest+ddt来实现。
这里我选用yaml文件来管理接口参数,开始本来想用json,但是json无法添加注释,可读性不好。
下面截图是接口文档中的各个接口,每个接口都有一个固定的序号,所以在设计每个接口的测试数据时,以序号来区分不同接口
yaml文件内容如下,需要注意的是yaml的语法:
(1)键值对用冒号分割,但是冒号后需要加一个空格
(2)禁止使用tab缩进,只能使用空格键;缩进长度没有限制,只要元素对齐就表示这些元素属于一个层级
(3)字符串可以不用引号标注,也可以加引号,如果想把数字变为字符串,加引号即可
(4)使用#表示注释
详情可以参考博客: https://blog.csdn.net/vincent_hbl/article/details/75411243
2. 简单 demo : python 读取 yaml 文件,取出接口参数
import yaml
fp = open('../dataconfig/信息互动模块接口.yaml', encoding='utf-8') #有中文字符的话,加编码格式
testdata = yaml.load(fp)
t = testdata['5.2.1.4']
print(t)
(1)封装读取yaml文件方法
handle_yaml.py
# coding: utf-8
# author: hmk
importyaml
importos
classHandleYaml:
def __init__(self,file_path=None):
if file_path:
self.file_path = file_path
else:
root_dir =os.path.dirname(os.path.abspath('.'))
# os.path.abspath('.')表示获取当前文件所在目录;os.path.dirname表示获取文件所在父目录;所以整个就是项目的所在路径self.file_path = root_dir +'/dataconfig/信息互动模块接口.yaml' #获取文件所在的相对路径(相对整个项目)
#elf.data = self.get_data()
def get_data(self):
fp =open(self.file_path, encoding='utf-8')
data =yaml.load(fp)
return data
if __name__ == '__main__':
test = HandleYaml()
p = test.get_data()
print(p['5.2.1.1'])
[if !vml][endif]
(2)封装requests请求方法
[if !vml][endif]
# coding: utf-8
# author: Archer
importrequests
importjson
classRunMethod:
defpost_main(self, url, data, header=None):if header is notNone:
res =requests.post(url=url, data=data, headers=header)
else:
res =requests.post(url=url, data=data)
# print(res.status_code)
# return res.json()
return res #为了方便后面断言,这里不再对服务器响应进行json格式编码
def get_main(self, url, data=None, header=None):if header is notNone:
res =requests.get(url=url, params=data, headers=header)
else:
res =requests.get(url=url, params=data)
print(res.status_code)
# return
res.json()
return res
def run_main(self, method, url, data=None, header=None):
if method== 'POST':
res =self.post_main(url, data, header)
else:
res =self.get_main(url, data, header)
returnres
# returnjson.mps(res, indent=2, sort_keys=False, ensure_ascii=False) #使用json模块格式化显示结果
[if !vml][endif]
(3)一个接口测试用例
[if !vml][endif]
# coding: utf-8
# author: Archer
importunittest
importddt
from base.run_method importRunMethod
from utils.handle_yaml importHandleYaml
get_data = HandleYaml() # 从yaml文件中取出该接口的参数
params = get_data.get_data()['5.2.1.4']
@ddt.ddt
classTest(unittest.TestCase):
"""加载咨询详情接口"""
defsetUp(self):
self.url ='http://localhost:8088/ApprExclusiveInterface/api/enterprise/info/consult/loadDetail.v'
self.run =RunMethod()
@ddt.data(*params)
deftest(self, value):
r =self.run.run_main("GET", self.url, value)
print(r)
self.assertTrue(value['assert'] inr.text)
if __name__ == '__main__':
unittest.main()
(4)利用HTMLTestRunner生成测试报告
run_report.py
# coding: utf-8
# author: hmk
from HTMLTestRunner importHTMLTestRunner
importunittest
importtime, os
root_dir = os.path.dirname(os.path.abspath('.')) # 获取当前文件所在目录的父目录的绝对路径,也就是项目所在路径E:\DDT_Interface
case_dir = root_dir + '/test_case/' # 根据项目所在路径,找到用例所在的相对项目的路径
print(root_dir)
print(case_dir)
"""定义discover方法"""
discover = unittest.defaultTestLoader.discover(case_dir,
pattern='test*.py', top_level_dir=None)
"""
1.case_dir即测试用例所在目录
2.pattern='test_*.py' :表示用例文件名的匹配原则,“*”表示任意多个字符
3.top_level_dir=None:测试模块的顶层目录。如果没顶层目录(也就是说测试用例不是放在多级目录中),默认为None
"""
if __name__ == "__main__":
"""直接加载discover"""
now = time.strftime("%Y-%m-%d%H_%M_%S")
filename = root_dir +'/report/' + now + '_result.html' #定义报告存放路径
print(filename)
fp = open(filename,'wb')
runner =HTMLTestRunner(stream=fp, title='个人网企业网接口测试报告', description='测试结果如下: ')
runner.run(discover)
fp.close()
ok ,unittest+ddt进行接口测试就完成了,还有很多不足,yaml配置文件还可以继续设计优化,例如可以把请求url也加进去。
其实感觉如何设计测试用例,组织测试数据也是一件很有意思的事情,很多事情都必须先有一个良好的设计思路才会进行的更顺畅。总之勤于思考,多参考他人的思路。不是有句话吗,学而不思则罔,思而不学则殆。
㈡ 数据质量的控制方法
一个战略性和系统性的方法能帮助企业正确研究企业的数据质量项目,业务部门与 IT 部门的相关人员将各自具有明确角色和责任,配备正确的技术和工具,以应对数据质量控制的挑战。
Informatica 的六步法为帮助指导数据质量控制而设计,从初始的数据探查到持续监测以及持续进行的数据优化。业务部门与 IT 部门的数据使用者 — 业务分析师、数据管理员、IT 开发人员和管理员,能够在六个步骤的每一步中协同使用 Informatica 数据质量解决方案;并在整个扩展型企业的所有数据领域和应用程序中嵌入数据质量控制。
步骤一:探查数据内容、结构和异常
第一步是探查数据以发现和评估数据的内容、结构和异常。通过探查,可以识别数据的优势和弱势,帮助企业确定项目计划。一个关键目标就是明确指出数据错误和问题,例如将会给业务流程带来威胁的不一致和冗余。
步骤二:建立数据质量度量并明确目标
Informatica的数据质量解决方案为业务人员和IT人员提供了一个共同的平台建立和完善度量标准,用户可以在数据质量记分卡中跟踪度量标准的达标情况,并通过电子邮件发送URL来与相关人员随时进行共享。
步骤三:设计和实施数据质量业务规则
明确企业的数据质量规则,即,可重复使用的业务逻辑,管理如何清洗数据和解析用于支持目标应用字段和数据。业务部门和IT部门通过使用基于角色的功能,一同设计、测试、完善和实施数据质量业务规则,以达成最好的结果。
步骤四:将数据质量规则构建到数据集成过程中
Informatica Data Quality支持普遍深入的数据质量控制,使用户可以从扩展型企业中的任何位置跨任何数量的应用程序、在一个基于服务的架构中作为一项服务来执行业务规则。数据质量服务由可集中管理、独立于应用程序并可重复使用的业务规则构成,可用来执行探查、清洗、标准化、名称与地址匹配以及监测。
步骤五:检查异常并完善规则
在执行数据质量流程后,大多数记录将会被清洗和标准化,并达到企业所设定的数据质量目标。然而,无可避免,仍会存在一些没有被清洗的劣质数据,此时则需要完善控制数据质量的业务规则。Informatica Data Quality可捕获和突显数据质量异常和异常值,以便更进一步的探查和分析。
步骤六:对照目标,监测数据质量
数据质量控制不应为一次性的“边设边忘”活动。相对目标和在整个业务应用中持续监测和管理数据质量对于保持和改进高水平的数据质量性能而言是至关重要的。Informatica Data Quality包括一个记分卡工具,而仪表板和报告选项则具备更为广泛的功能,可进行动态报告以及以更具可视化的方式呈现。 上面介绍的Informatica六步法,该方法运用Informatica数据质量解决方案,提供公司所需要的各种数据质量管理能力,并确保其所有数据均是完整的、一致的、准确的、通用的。该解决方案包括几个针对特定用途优化的组件:
Informatica Data Explorer运用基于角色的工具可促进业务部门与IT部门之间的协作,该数据探查软件发现和分析任何来源中任何类型数据的内容、结构和缺陷。
Informatica Data Quality软件执行清洗、解析、标准化和匹配流程并使得可视记分卡和仪表盘上的持续监测得以进行。与Informatica data Explorer类似,它特有基于角色的工具,业务部门和IT部门可以借此得以协同工作。
Informatica Identity Resolution软件能使各机构从60多个国家/地区以及各企业和第三方应用程序中搜寻和匹配一致数据。 Informatica数据质量解决方案为业务部门与IT部门间的协作提供基础。其基于角色的工具特色设计使得业务分析师、数据管理员、IT开发人员和管理员能够充分利用他们独特的技能体系,并在流程中与所有相关人员沟通。
Informatica Analyst:适用于业务分析师和数据管理员。通过用语义术语表述数据,该款基于浏览器的工具使分析师和数据管理员能够探查数据、创建和分析质量记分卡、管理异常记录、开发和使用规则,以及与IT部门展开协作。
Informatica Developer: 适用于IT开发人员。这个基于Eclipse的开发环境允许开发人员发现、访问、分析、探查和清晰处于任何位置的数据。开发人员可以为逻辑数据对象建模,将数据质量规则与复杂转换逻辑合并,并在逻辑制定后,进行中游探查以验证和调试逻辑。
Informatica Administrator: 适用于IT管理员。该工具为IT管理员带来集中配置和管理的能力。管理员可以监测和管理安全性、用户访问、数据服务、网格和高可用性配置。
㈢ 数据质量控制通常做法
数据质量控制通常做法如下:
步骤一:探查数据内容、结构和异常
第一步是探查数据以发现和评估数据的内容、结构和异常。通过探查,可以识别数据的优势和弱势,帮助企业确定项目计划。一个关键目标就是明确指出数据错误和问题,例如将会给业务流程带来威胁的不一致和冗余。
步骤二:建立数据质量度量并明确目标
Informatica的数据质量解决方案为业务人员和IT人员提供了一个共同的平台建立和完善度量标准,用户可以在数据质量记分卡中跟踪度量标准的达标情况,并通过电子邮件发送URL来与相关人员随时进行共享。
步骤三:设计和实施数据质量业务规则
明确企业的数据质量规则,即,可重复使用的业务逻辑,管理如何清洗数据和解析用于支持目标应用字段和数据。业务部门和IT部门通过使用基于角色的功能,一同设计、测试、完善和实施数据质量业务规则,以达成最好的结果。
步骤四:将数据质量规则构建到数据集成过程中
Informatica Data Quality支持普遍深入的数据质量控制,使用户可以从扩展型企业中的任何位置跨任何数量的应用程序、在一个基于服务的架构中作为一项服务来执行业务规则。
数据质量服务由可集中管理、独立于应用程序并可重复使用的业务规则构成,可用来执行探查、清洗、标准化、名称与地址匹配以及监测。
步骤五:检查异常并完善规则
在执行数据质量流程后,大多数记录将会被清洗和标准化,并达到企业所设定的数据质量目标。然而,无可避免,仍会存在一些没有被清洗的劣质数据,此时则需要完善控制数据质量的业务规则。Informatica Data Quality可捕获和突显数据质量异常和异常值,以便更进一步的探查和分析。
步骤六:对照目标,监测数据质量
数据质量控制不应为一次性的“边设边忘”活动。相对目标和在整个业务应用中持续监测和管理数据质量对于保持和改进高水平的数据质量性能而言是至关重要的。
Informatica Data Quality包括一个记分卡工具,而仪表板和报告选项则具备更为广泛的功能,可进行动态报告以及以更具可视化的方式呈现。
数据质量控制流程
第一阶段:启动
在这个阶段我们需要根据所在机构的现行组织架构和工作规范基础上,建立一套质量管控流程和规范。如建立质量管控委员会、制定质量管控管控办法等。
质量管控委员会不必是全职,可由现有组织中如信息中心相关人员兼任。数据质量管控办法,则应明确质量管控的角色、职责,建立可执行的工作流程、可量化的工作评估方法,同时也应具备绩效考核、冲突解决与管控方式等。
有了流程和规范后,相应的责任人就应明确本轮质量管控的目标。如:数据质量提升范围,或者是满足一些业务的预期。目标制定完成后我们就可以进入下一个执行阶段了。
第二阶段:执行
进入执行阶段,我们就要开始具体的质量管控工作,整个工作应该围绕启动阶段制定的目标进行。这时我们应该适当引入一些质量管控工具来帮助我们更高效地完成我们的工作。
第三阶段:检查
检查阶段,主要是对执行阶段的成果进行检查并分析原因。
第四阶段:处理(本环节一般包括以下2个方面):
1、监控数据质量,控制管理程序和绩效
根据既定的操作程序,对质量管控过程中各个环节参与者进行绩效评估。还可以根据不同时期的重点的制定不同的评分标准,有针对性地进行评价和管控,如整改初期数据缺失严重,则可对完整性规则权重调大,以期更快看到成效或者达到更好的效果。
2、建立质量控制意识与文化
在这里沟通与推广是重点,要让所有参与者了解数据质量问题和其实质影响,宣贯系统化的数据质量管控方法,同时挖掘对各个环节参与者的价值,尤其是业务方,传达一种“数据质量问题不能只靠技术手段解决”的意识。最终形成一种数据质量的管理的文化。
㈣ 如何有效的进行数据治理和数据管控
大数据时代的到来,让政府、企业看到了数据资产的价值,并快速开始 探索 应用场景和商业模式、建设技术平台。但是,如果在大数据拼图中遗忘了数据治理,那么做再多的业务和技术投入也是徒劳的,因为很经典的一句话:Garbage in Garbage out。
当你处理或使用过大量数据,那么对“数据治理”这个词你一定不会陌生。你会思考数据治理是什么?数据治理是否适合你?如何实施。简单来说,数据治理就是处理数据的策略——如何收集、验证、存储、访问、保护和使用数据。数据治理也还包括谁来查看,使用,共享你的数据。
随着大数据时代的推进,以上这些问题日益突出,越来越多的企业依赖采集、治理、储存和分析数据,并实现他们的商业目标。数据变成了企业的盈利工具、业务媒介和商业机密。数据泄露会导致法律纠纷,还会令消费者对公司的核心业务失去信心。
如果抱着侥幸的心理,让各个业务部门自己管理数据,那么你会缺乏有效的数据管理,甚至各部门会自己做自己的。你无法想象各个部门按随心所欲地自己生产、储存、销售产品。数据使用不当就像库存使用不当一样,会给企业造成沉重的损失。因此必须制定一项测量用以保证所需数据的有效和安全,可用性,这就是我们要谈的“数据治理”。
数据治理策略必须包含完整的数据生命周期。策略必须包含从数据采集、清洗到管理,在这个生命周期内,数据治理必须要有关注以下内容:
数据从哪里来,数据怎么来
这是数据生命周期的起点。数据来源决定了数据治理策略的基础。例如数据集的大正乎腔小就由数据来源所决定。是从目标市场、现存用户和社交媒体收集数据?还是使用第三方收集数据或者分析你收集的数据?输入数据流是什么?数据治理必须关注这些问题,并制定策略来管理数据的采集,引导第三方处理他们收集的数据或者分析你收集的数据,控制数据的路径和生命周期。
数据校验
通常数据源都是非常庞大且多样的,这是一个让数据管理者非常头疼的问题。将数据噪音和重要数据进行区分仅仅只是开始,如果你正从关联公司收集数据,你必须确保数据是可靠的,对于那些几万、几十万、甚至成百上千万的复杂关系数据,单靠人为的通过Excel对进行数据清洗已经不太现实,需要专业的数据举衫清洗工具或系统对海量复杂关系数据进行批量查询、替换、纠正、丰富以及存储。将元数据、主数据、交易数据、参考数据以及数据标准内置固化到数据清洗工具或系统中,结合组织架构、内容管控、过程管控等管理机制、技术标准提高数据治理人员的工作顷孝效率。比如:需要手工编写程序收集的元数据,系统帮你自动获取;需要人工识别或编写代码实现的数据质量检查,系统帮你自动识别问题;用文档管理的数据字典,系统帮你在线管理;基于邮件和线下的流程,系统帮你线上自动化。当然,系统并不是万能的,数据治理的软件工具与其他软件工具一样,没有什么神奇之处,没有数据治理人员的参与和数据治理工作的推进,软件再完美也无法完成数据治理整个过程。这也是为什么数据治理咨询服务一直有其市场,以及为什么国内大部分单纯数据治理软件项目未能达到预期目标。
数据治理必须解决存储问题
而数据存储和数据集的大小有密切关系。大数据的存储必须是在安全的冗余系统之中。常常利用层次体系,根据使用频率来存储数据。这样一来,昂贵的在线系统提供的是被频繁请求的数据,而请求频率较低的数据则存储在便宜,可用率较低的系统上。当然,一些请求频率低但是敏感的数据如果存储于安全性较低的系统上,风险会大大提升。因此,在制定数据存储方案时,良好的数据治理策略必须考虑到方方面面的因素。
数据治理必须建立访问管理制度,在需求和安全性找到平衡点
明确访问者的权限,只能访问他们对应权限包含的数据。只有合法请求才能够访问数据,而敏感的数据需要更高的权限和更严密的验证才可以被访问。只向具有特定安全级别的用户开放。应该对用户和数据本身设置访问级别,管理账户时,应与人力资源部和采购部紧密互动,这一点非常重要,因为这样可以及时地使离职员工和停止合作的供应商不再拥有访问权限。处理好这些细节以及确保数据所有权和责任,这是构成完整的数据治理策略的一部分。
数据的使用/共享/分析
如何使用数据是数据治理之后一项重要的内容,数据可能会用于客户管理,提高客户体验,投放定向广告,用户应用系统初始化基础数据工作,辅助应用系统建设,提供市场分析和关联公司共享数据。必须仔细界定哪些数据可用于共享或者用于营销,并保护它们免遭攻击和泄露,因为数据本来就应该被用于纯粹的内部用途。让用户知悉采集数据的所有公司都会遵守数据安全和保证的规定。能够确保数据被合理合规的使用,也是数据治理重要的一项内容。
收集、验证、存储、访问和使用都是数据安全计划的必要组成部分
收集、验证、存储、访问和使用都是数据安全计划的必要组成部分,必须要有一个全面的策略来解决这些问题以及其他安全问题。数据安全计划必须是有效且可用性高,但是数据生命周期的所有部分都很容易受到攻击和由于粗心造成的破坏。你必须在数据治理中确定数据安全计划,包括访问控制,静态数据,数据加工,数据传输之后的加密等。
管理/元数据
没有管理的数据生命周期是不完整的。例如,将元数据应用于一段数据,用来进行识别检索。元数据包含数据的来源,采集或生成的日期,信息访问的级别,语义分类及其他企业所必须的信息。数据治理能建立一个元数据词汇表,界定数据的有效期。请注意数据也会过期,过期之后我们只能用于 历史 数据的分析。
数据治理创建的过程中可能会在企业内部遭到一些阻力,比如有的人会害怕失去访问数据的权限,而有些人也不愿意和竞争者共享数据。数据治理政策需要解决上述问题,让各方面的人都可接受。习惯了数据筒仓环境的公司,在适应新的数据治理策略上面会有困难,但如今对大型数据集的依赖以及随之而来的诸多安全问题,使创建和实施覆盖全公司的数据策略成为一种必然。
数据日益成为企业基础设施的一部分,在企业一步步处理各种特定情况的过程中形成决策。它以一次性的方式作出,常常是对某一特定问题的回应。因此,企业处理数据的方法会因为不同部门而改变,甚至会因为部门内部的不同情况而改变。即使每个部门已经有一套合理的数据处理方案,但这些方案可能彼此冲突,企业将不得不想办法协调。弄清数据存储的要求和需求是一件难事,如果做得不好,就无法发挥数据在营销和客户维系方面的潜力,而如果发生数据泄露,你还要承担法律责任。
另外在大企业内部,部门之间会展开对数据资源的争夺,各部门只关注自身的业务情况,缺乏全局观念,很难在没有调解的情况下达成妥协。
因此公司需要一个类似数据治理委员会的机构,他的职责是执行现有数据策略、挖掘未被满足的需求以及潜在安全问题等,创建数据治理策略,使数据的采集、管护、储存、访问以及使用策略均实现标准化,同时还会考虑各个部门和岗位的不同需求。平衡不同部门之间存在冲突的需求,在安全性与访问需求之间进行协调,确保最高效、最安全的数据管理策略。
建立数据治理委员会
负责评估各个数据用户的需求,建立覆盖全公司的数据管理策略,满足内部用户、外部用户甚至法律方面的各种需求。该委员会的成员应该囊括各个业务领域的利益相关者,确保各方需求都得到较好地满足,所有类型的数据所有权均得到体现。委员会也需要有数据安全专家,数据安全也是重要的一环。了解数据治理委员会的目标是什么,这一点很重要,因此,应该思考企业需要数据治理策略的原因,并清楚地加以说明。
制定数据治理的框架
这个框架要将企业内部、外部、甚至是法律层面的数据需求都纳入其中。框架内的各个部分要能够融合成一个整体,满足收集、清洗、存储、检索和安全要求。为此,企业必须清楚说明其端到端数据策略,以便设计一个能够满足所有需求和必要操作的框架。
有计划地把各个部分结合起来,彼此支持,这有很多好处,比如在高度安全的环境中执行检索要求。合规性也需要专门的设计,成为框架的一部分,这样就可以追踪和报告监管问题。这个框架还包括日常记录和其他安全措施,能够对攻击发出早期预警。在使用数据前,对其进行验证,这也是框架的一部分。数据治理委员会应该了解框架的每个部分,明确其用途,以及它如何在数据的整个生命周期中发挥作用。
数据测试策略
通常一个数据策略需要在小规模的商用环境中进行测试,用来发现数据策略在框架,结构和计划上的不足之处并进行调整,之后才能够投入正式使用。
数据治理策略要与时俱进
随着数据治理策略延伸到新的业务领域,肯定需要对策略进行调整。而且,随着技术的发展,数据策略也应该发展,与安全形势、数据分析方法以及数据管理工具等保持同步。
明确什么是成功的数据策略
我们需要确立衡量数据治理是否成功的明确标准,以便衡量进展。制定数据管理目标,有助于确定成功的重要指标,进而确保数据治理策略的方向是符合企业需求。
无论企业大小,在使用数据上都面临相似的数据挑战。企业越大,数据越多,而数据越多,越发需要制定一个有效的,正式的数据治理策略。规模较小的企业也许只需要非正式的数据治理策略就足够了,但这只限于那些规模很小且对数据依赖度很低的公司。即便是非正式的数据治理计划也需要尽可能考虑数据用户和员工数据的采集、验证、访问、存储。
当企业规模扩大,数据需求跨越多个部门时,当数据系统和数据集太大,难以驾驭时,当业务发展需要企业级的策略时,或者当法律或监管提出需求时,就必须制定更为正式的数据治理策略。