您的位置:首页 > 其它

Selenium2自动化测试模型

2017-02-23 23:01 155 查看
Selenium2自动化测试模型
一.自动化测试库(library):是由代码集组成的,以供调用;面向对象的代码组织形成的库,称为类库;面向过程的代码组织形成的库称为函数库;webdriver就是一个类库;
测试框架(framework):为解决一类问题而开发,用户可以使用框架提供的类与函数;unittest:单元测试框架,主要用于实现测试用例的组织和执行,以及测试结果的生成;
测试工具(tools):更加的抽象,屏蔽了底层代码,一般会有单独的界面供用户操作;
二.自动化测试模型
1.线性测试:每个脚本都是相对独立和完整的,且不产生其他依赖和调用;测试用例的开发和维护成本很高;
2.模块化驱动测试:把重复的操作独立成公共模块,需要时被调用,提高了测试用例的可维护性;
3.数据驱动测试:数据的参数化;实现数据和脚本的分离,增强脚本的重复性;
4.关键字驱动测试:QTP(UFT-Unified Functional Testing),Robot
Framework,Selenium 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
Zhangsan,123
Lisi,1234
Wangwu,567

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文件:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: