写在前面:通过xml获取测试数据,主要是为了使数据参数化。测试脚本和测试数据分离,使得脚本清晰容易维护,方便排查问题。
XML:可扩展的标记语言,是一种用于标记电子文件使其具有结构行的标记语言。
自动化测试中的使用场景:
1. 经常变动的测试数据;
2. 数据量大,不方便放在脚本中;
3. 数据作用于多个地方;
4. 相同测试用例,可以使用不同的数据;
5. 例:不稳定,后续改动较多功能;容易出错的功能
XML特征
"1.0" encoding="UTF-8"?>
"background-color: #ccffcc">python获取xml文件方法集合
引入模块处理xml文件
from xml.dom.minidom import parse
打开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') print text #结果 test data
xml文件
<"1.0" encoding="UTF-8"?> <data> <account type='createText'> <text>test data</text> </account> <account type='email'> <username>11111@qq.com</username> <password>11111111</password> </account> </data>
下面方法相对应取数据的格式,# style = xml中的大类 ; typename = 细分属性; typevalue = 细分属性的值; valuename = xml文件,需要获取的值的tag;
如果需要获取相对应的上面XML文件中
“test data”的值,那么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 -*- import unittest import os import time from xml.dom.minidom import parse import xml.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 def get_attrvalue(node, attrname): return node.getAttribute(attrname) # style = xml中的大类 ; typename = 细分属性; typevalue = 细分属性的值; valuename = xml文件,需要获取的值的tag; def get_data_vaule(style, typename, typevalue, valuename): nodelist = data.getElementsByTagName(style) for node in nodelist: if typevalue == node.getAttribute(typename): node_name = node.getElementsByTagName(valuename) value = node_name[0].childNodes[0].nodeValue print value return value return
以上这篇python 通过xml获取测试节点和属性的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
python,获取xml节点
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。