1       自动化测试模型

1.1     数据驱动测试实例

调用的类

login.py

#0508001:类:qq邮箱登录&退出
#coding=utf-8
from selenium import webdriver
from time import sleep
class Login():
        
    #登录
    def user_login(self,driver,username,password):
        driver.switch_to.frame('login_frame') 
        driver.find_element_by_id("u").clear()
        driver.find_element_by_id("u").send_keys(username)
        driver.find_element_by_id("p").clear()
        driver.find_element_by_id("p").send_keys(password)
        driver.find_element_by_id("login_button").click()
        sleep(1)
    #退出
    def user_logout(self,driver):
         driver.find_element_by_link_text("[退出]").click()
         sleep(1)
         driver.quit()

 

1.1.1      参数化邮箱登录

 

 QQmail-login.py

#0508002:QQmail_login:user、password
from selenium import webdriver
from time import sleep
from login import *
 
class LoginTest():
    #初始化函数:__init__(self)
    def __init__(self):
        self.driver = webdriver.Chrome()
        sleep(1)
        url = "https://mail.qq.com/"
        self.driver.get(url)

    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 = '492251234'
        password = 'j1234'
        Login().user_login(self.driver,username,password)
        sleep(2)
        self.driver.quit()
        
LoginTest().test_admin_login()
LoginTest().test_guest_login()

 

1.1.1      参数化搜索关键字

可将参数放在一个数组,通过循环遍历数组,搜索。

如:text = [‘a’, ‘b’ ‘c’]

For I in text:

…………

1.1.2      读取txt文件

 

 

Python 提供了以下几种读取txt文件的方式。

l  read() 读取整个文件。

l  readline() 读取一行数据。

l  readlines() 读取所有行的数据。

 

#0516003:QQmail_login:user、password from txt
from selenium import webdriver
from time import sleep
from login import *
 
class LoginTest():
    #初始化函数:__init__(self)
    def __init__(self):
        self.driver = webdriver.Chrome()
        sleep(1)
        url = "https://mail.qq.com/"
        self.driver.get(url)

    def test_admin_login(self):
        print(username,password)
        Login().user_login(self.driver,username,password)
        sleep(3)
        self.driver.quit()
            
user_file = open('users.txt','r')
lines = user_file.readlines()
user_file.close()
for line in lines:
    username = line.split(',')[0]
    password = line.split(',')[1]
    LoginTest().test_admin_login()

1.1.3      读取csv文件

 

#0517004:QQmail_login:user、password from csv
# coding=utf-8
from selenium import webdriver
from time import sleep
from login import *
import csv
 
class LoginTest():
    #初始化函数:__init__(self)
    def __init__(self):
        self.driver = webdriver.Chrome()
        sleep(1)
        url = "https://mail.qq.com/"
        self.driver.get(url)

    def test_admin_login(self):
        Login().user_login(self.driver,username,password)
        sleep(3)
        self.driver.quit()
            
user_file = csv.reader(open('users.csv', 'r',encoding='utf-8'))
for user in user_file:
    username = user[0]
    password = user[1]
    print(username,password)
    LoginTest().test_admin_login()

 

1.1.4      读取xml文件

 

#0517004:Something from xml
from xml.dom import minidom  

#打开xml文档
dom = minidom.parse('test2.xml')

#得到文档元素对象
root = dom.documentElement   #用于得到dom对象的文档元素,并把获得的对象给root
'''每一个结点都有它的nodeName,nodeValue,nodeType属性。
'''
print (root.nodeName)          #节点名称#
print (root.nodeValue)         #节点值,只对文本结点有效
print (root.nodeType)          #节点类型
print (root.ELEMENT_NODE)


#获得任意标签名
bb = root.getElementsByTagName('city')  #获取标签名为city的一组标签
b= bb[2]                                #获取标签名为city的一组标签中的第三个
print (b.nodeName)                      #获取标签名为city的一组标签中的第三个的节点名称
print (b.tagName)                       #获取标签名为city的一组标签中的第三个的标签名称
print (b.firstChild.data)               #获取标签名为city的一组标签中的第三个的标签对之间的值

cc = root.getElementsByTagName('login')
c= cc[1]
print (c.getAttribute('username'))     #获取login标签的username的属性值

 

 
 
posted on 2018-05-17 13:42  jxba  阅读(304)  评论(0编辑  收藏  举报