python 通过xml获取测试节点和属性的实例
写在前面:通过xml获取测试数据,主要是为了使数据参数化。测试脚本和测试数据分离,使得脚本清晰容易维护,方便排查问题。
XML:可扩展的标记语言,是一种用于标记电子文件使其具有结构行的标记语言。
自动化测试中的使用场景:
1.经常变动的测试数据;
2.数据量大,不方便放在脚本中;
3.数据作用于多个地方;
4.相同测试用例,可以使用不同的数据;
5.例:不稳定,后续改动较多功能;容易出错的功能
XML特征
•具有自我描述性,本身不做任何事情
•声明部分
•有开就有闭,成对出现
•可以有属性值
•xml用于传输数据
•可以嵌入子标签
python获取xml文件方法集合
引入模块处理xml文件
fromxml.dom.minidomimportparse
打开xml文档,
DOMTree=xml.dom.minidom.parse(data_path)
根据xml文档,得到文档元素的对象
data=DOMTree.documentElement
获取节点列表
nodelist=data.getElementsByTagName(大类名称)
获取第一个节点的子节点列表
childlist=nodelist[0].childNodes
获取XML节点属性值
node.getAttribute(AttributeName)
获取XML节点对象集合
node.getElementsByTagName(TagName)
返回子节点列表
node.childNodes
获取XML节点值
node.childNodes[index].nodeValue
访问第一个节点
node.firstChild,等价于pagexml.childNodes[0]
访问元素属性例如:
Node.attributes["id"] a.name#就是上面的"id" a.value#属性的值
以下为具体的demo内容:
方法调用
#方法调用 text=get_data_vaule('account','type','createText','text') printtext #结果 testdata
xml文件
testdata 11111@qq.com 11111111
下面方法相对应取数据的格式,#style=xml中的大类;typename=细分属性;typevalue=细分属性的值;valuename=xml文件,需要获取的值的tag;
如果需要获取相对应的上面XML文件中
“testdata”的值,那么style=data;typename=type;typevalue=createText;valuename=text“11111@qq.com”的值,那么style=data;typename=type;typevalue=email;valuename=username
方法文件
#!/usr/bin/python #-*-coding:UTF-8-*- importunittest importos importtime fromxml.dom.minidomimportparse importxml.dom.minidom #获取xml文件地址 path=os.path.abspath('.') data_path=os.path.join(path,'features/data/data.xml')#获取xml文件地址 DOMTree=xml.dom.minidom.parse(data_path) data=DOMTree.documentElement defget_attrvalue(node,attrname): returnnode.getAttribute(attrname) #style=xml中的大类;typename=细分属性;typevalue=细分属性的值;valuename=xml文件,需要获取的值的tag; defget_data_vaule(style,typename,typevalue,valuename): nodelist=data.getElementsByTagName(style) fornodeinnodelist: iftypevalue==node.getAttribute(typename): node_name=node.getElementsByTagName(valuename) value=node_name[0].childNodes[0].nodeValue printvalue returnvalue return
以上这篇python通过xml获取测试节点和属性的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。