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文件:
一.自动化测试库(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文件:
相关文章推荐
- Selenium+Python 自动化测试模型
- selenium2-自动化测试模型(1)
- Selenium2自动化测试:让Firefox无提示地上传、下载保存文件
- [网页自动化/测试]Firefox selenium plugin 安装及使用
- python+selenium 自动化测试环境搭建
- selenium与自动化测试成神之路---学习方法
- Selenium(ThoughtWorks公司开发的web自动化测试工具)
- Junit+Selenium+Maven+SVN+Eclipse+AutoFrame全自动化测试实践实例(二)
- 自动化测试工具 Selenium WebDriver 入门教程
- Python-Selenium2做Web自动化测试(1)-软件测试分类以及什么时候需要进行自动化测试
- Selenium2 Python 自动化测试实战学习笔记(二)
- Selenium2 Python 自动化测试实战学习笔记(九)
- Selenium2 Python 自动化测试实战学习笔记(五)
- 【自动化测试与持续集成】基于Selenium2和TestNG的自动化测试的实现
- python+selenium个人开发的自动化测试框架
- 使用PHPUnit + Selenium进行自动化测试
- Selenium 与 Android自动化测试
- selenium2+python3自动化2-csdn写博客(邮件发送附件测试报告)
- 基于Selenium2和TestNG的自动化测试
- 无界面下,selenium进行自动化测试