Selenium2自动化测试模型

Selenium2自动化测试模型

一.自动化测试库(library)是由代码集组成的,以供调用;面向对象的代码组织形成的库,称为类库;面向过程的代码组织形成的库称为函数库;webdriver就是一个类库;

    测试框架(framework)为解决一类问题而开发,用户可以使用框架提供的类与函数;unittest:单元测试框架,主要用于实现测试用例的组织和执行,以及测试结果的生成;

     测试工具(tools)更加的抽象,屏蔽了底层代码,一般会有单独的界面供用户操作;

二.自动化测试模型

1.线性测试:每个脚本都是相对独立和完整的,且不产生其他依赖和调用;测试用例的开发和维护成本很高;

2.模块化驱动测试:把重复的操作独立成公共模块,需要时被调用,提高了测试用例的可维护性;

3.数据驱动测试:数据的参数化;实现数据和脚本的分离,增强脚本的重复性;

4.关键字驱动测试:QTP(UFT-Unified Functional Testing)Robot FrameworkSelenium IDE

模块化驱动测试模型实例:

#模块化驱动测试模型
#public.py
class Login():
    #登录
    def user_login(self,driver):
        driver.find_element_by_id("xxx").clear()
        driver.find_element_by_id("xxx").send_keys("xx")
        driver.find_element_by_id("xxx").clear()
        driver.find_element_by_id("xxx").send_keys("xx")
        driver.find_element_by_id("xxx").click()
    #退出
    def user_logout(self,driver):
        driver.find_element_by_link_text("退出").click()
        driver.quit()

 

from selenium import webdriver
from public import Login
import time 
driver=webdriver.Firefox()
driver.implicitly_wait(10)
driver.get("http://www.126.com")
#调用登录模块
Login().user_login(driver)
#调用退出模块
Login().user_logout(driver)

 

数据驱动测试实例

通过定义变量进行参数化,可以通过列表,字典,或者读取文本文件(txt,csv,xml)的方式进行参数化;

#模块化驱动测试模型
#public.py
class Login():
    def user_login(self,driver,username,password):
        driver.find_element_by_id("xxx").clear()
        driver.find_element_by_id("xxx").send_keys(username)
        driver.find_element_by_id("xxx").clear()
        driver.find_element_by_id("xxx").send_keys(password)
        driver.find_element_by_id("xxx").click()
     ....

 

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")
    #admin用户登录
    def test_admin_login(self):
        username="admin"
        password="123456"
        Login().user_login(self, driver, username, password)
        self.driver.quit()
    #guest用户登录
    def test_guest_login(self):
        username = "guest"
        password = "123456"
        Login().user_login(self, driver, username, password)
        self.driver.quit()

 

读取txt文件:

user_info.txt

Zhangsan123

Lisi1234

Wangwu567

 

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)

读取csv文件

创建info.csv文件,首先通过wps表格或excel创建表格,文件另存为CSV格式进行保存;

注意不要通过直接修改文件的后缀名来创建CSV文件,这样并非真正的CSV文件。

import csv
date=csv.reader(open("info.csv","r"))
for user in date:
    print(user)

    print(user[1])

 

读取xml文件:

你可能感兴趣的:(软件测试,python)