数据驱动测试实例

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

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)



阅读更多

扫码向博主提问

去开通我的Chat快问

u010550534

非学,无以致疑;非问,无以广识
  • 擅长领域:
  • 软件测试
  • webUI自动化测试
  • web接口自动化测试
  • web安全测试
  • web性能测试
文章标签: 自动化测试
个人分类: webUI自动化测试
上一篇模块化驱动测试实例
下一篇单元测试框架之unittest
想对作者说点什么? 我来说一句

junit参数化测试的使用方法

2016年01月02日 21KB 下载

数据驱动的管理.pdf

2017年04月05日 22.11MB 下载

数据驱动的管理》

2017年09月13日 20.02MB 下载

webdriver数据驱动测试注意事项.

2015年01月31日 458KB 下载

数据驱动组件.数据驱动组件.

2011年04月17日 354KB 下载

oracle数据驱动

2018年03月30日 3.07MB 下载

sqlserver数据驱动

2011年08月16日 551KB 下载

没有更多推荐了,返回首页

关闭
关闭