数据驱动测试实例

数据驱动的形式有很多种:

1.定义变量的方式

2.定义数组、字典的方式

3.读取文件(txt\csv\xml)的方式


1、通过定义变量方式进行参数化

public.py

class Login():
    def user_login(self,driver,username,password):
        driver.find_element_by_xpath("//input[@name='email']").clear()
        driver.find_element_by_xpath("//input[@name='email']").send_keys(username)
        driver.find_element_by_name("password").clear()
        driver.find_element_by_name("password").send_keys(password)
        driver.find_element_by_id("dologin").click()
    def user_logout(self,driver):
        driver.find_element_by_link_text("退出").click()
        driver.quit()

mailTest.py

from selenium import webdriver
from public import Login
class LoginTest():
    def __init__(self):
        self.driver=webdriver.Firefox()
        self.driver.implicitly_wait(10)
        self.driver.get("http://www.126.com")
    def test_admin_login(self):
        username='admin'
        password='123'
        Login().user_login(self.driver,username,password)
        self.driver.quit()
    def test_guest_login(self):
        username='guest'
        password='321'
        Login().user_login(self.driver,username,password)
        self.driver.quit()
LoginTest().test_admin_login()
LoginTest().test_guest_login()

2、通过定义数组的方式进行参数化

from selenium import webdriver
search_text=['python','中文','text']
for text in search_text:
    driver=webdriver.Firefox()
    driver.implicitly_wait(10)
    driver.get("http://www.baidu.com")
    driver.find_element_by_id('kw').send_keys(text)
    driver.find_element_by_id('su').click()
    driver.quit()
3、通过读取txt文件的方式进行参数化

python提供了以下读取txt文件的方法:

read():读取整个文件

readline():读取一行数据

readlines():读取所有行的数据

user_info.txt

zhangsan,123

lisi,456

wangwu,789

user_info.py

user_file=open('user_info.txt','r')
lines=user_file.readlines()
user_file.close()
for line in lines:
     username=line.split(',')[0]
     password=line.split(',')[1]
     print(username,password)

4、 通过读取CSV文件的方式进行参数化

csv_read.py

import csv
date=csv.reader(open('info.csv','r'))
#循环输出每一行信息
for user in date:
     print(user)
#循环输出第二列数据
for user in date:
     print(user[1])
5、通过读取xml文件的方式进行参数化

info.xml

<?xml version="1.0" encoding="utf-8"?>

<info>

   <base>

       <platform>Windows</platform>

       <browser>Firefox</browser>

       <url>http://www.baidu.com</url>

           <login username="admin" password="123456"/>

           <login username="guest" password="654321"/>

   </base>

   <test>

        <province>北京</province>

        <province>广东</province>

              <city>深圳</city>

              <city>珠海</city>

        <province>浙江</province>

              <city>杭州</city>

     </test>

</info> 

from xml.dom import minidom
#打开xml文档
dom=minidom.parse('info.xml')
#得到文档元素对象
root=dom.documentElement
print(root.nodeName)
print(root.nodeValue)
print(root.nodeType)
print(root.ELEMENT_NODE)
#获得任意标签名
tagname=root.getElementsByTagName('browser')
print(tagname[0].tagName)
#获得标签的属性值
tagname=root.getElementsByTagName('login')
username=tagname[0].getAttribute("username")
print(username)
password=tagname[0].getAttribute("password")
print(password)
username=tagname[1].getAttribute("username")
print(username)
password=tagname[1].getAttribute("password")
print(password)
#获得标签对之间的数据
provinces=root.getElementsByTagName('province')
citys=root.getElementsByTagName('city')
p2=provinces[1].firstChild.data
c1=citys[0].firstChild.data
c2=citys[1].firstChild.data
print(p2)
print(c1)
print(c2)



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值