写在前面:通过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获取测试节点和属性的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
- 敢达争锋对决全新10月超限定机体上线
- 上限最高的四大英雄,无一不是天花板!
- 小乔全面教学,一闪必须会,前期可以凶
- 机关百炼1-3关速通攻略,选对英雄和武器
- 《暗喻幻想:ReFantazio》最新TVCM公开!10月发售
- 爆料:《刺客信条:影》跳票原因是开发近况不佳
- 《暗喻幻想》Xbox版M站92分:Atlus新的巅峰
- 《黑神话》新一批角色原画欣赏!白毛寅虎似将军!
- Steam好评如潮!《寂静岭2RE》普通版现已解锁
- 2024国庆档总票房20.97亿 《志愿军:存亡之战》超8亿夺冠
- 《原神》部族龙形武士讨伐路线推荐 部族龙形武士位置一览
- 《原神》5.0浪沫羽鳃高效采集路线推荐 浪沫羽鳃位置一览
- 《原神》5.0深渊12层配队推荐
- 曾淑勤.2019-爱在山谷回荡【种子音乐】【WAV+CUE】
- 后弦.2006-9公主(EP)【东升世纪】【WAV+CUE】