python+selenium+nose web简单自动化测试框架
2014-09-07 13:08
1001 查看
os:win7
python:3.3.2
selenium:selenium-2.42.1-py
安装:直接通过setuptools安装selenium就好啦。
selenium2主推的webdriver,是通过调用相应的浏览器驱动来完成浏览器控制的,因此需要安装相应的浏览器驱动。
selenium是一个测试Web应用程序的工具,开源,免费,支持多种浏览器,FireFox,Chrome,IE,Opera,safari,android等,支持python语言,对web页面有较好的支持。
前期的环境搭建工作完成之后,就开始web测试之旅吧。
创建一个.py文件,我们命名为PythonPlusSelenium.py
#coding = utf-8
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://www.baidu.com")
F5运行,就可以看见火狐浏览器启动了,然后就看到在地址栏好像有人输入http://www.baidu.com一样,紧接着就看到baidu主页打开了。太自动化了,唯一不足的是速度有点慢,呵呵。
1.下面列出浏览器最基本也最简单的几个操作。
driver.quit() 退出了浏览器
driver.maximize_window() 将浏览器最大化显示
driver.set_window_size(1024,768) 设置浏览器显示的宽、高
driver.back() 模拟浏览器的后退功能退回到上一个页面
driver.forward() 前进
2.对鼠标操作的支持,对鼠标操作的支持都放在了webdriver.common.action_chains里面。
context_click() 右击
double_click() 双击
drag_and_drop() 拖动
move_to_element() 移动到某个元素上
click_and_hold() 左击
3.对键盘输入的支持
4.对下拉框的处理
5.对分页的支持
6.对滚动条的支持
7.对弹框的支持
selenium的具体API和支持的特性我就不一一介绍,很多文档有很详细的介绍。
由于我们前面介绍过python常见的几种测试框架doctest,unittest,nose等,那我们可以将这些测试框架引入到我们的python+selenium的自动化测试中来,我推荐使用nose。
以163邮箱登陆界面为例来进行测试用例编写。只考虑正确用户名+正确密码,正确用户名+错误密码,错误用户名+正确密码这几种情况。
首先导入selenium webdriver模块。导入unittest
我们将打开Firefox浏览器已经进入到163邮箱主页放置在setUp,将关闭浏览器放在tearDown。
我们定义三个测试用例 testlogin,testWrongPwdlogin和testWrongUserlogin。
首先我们定位到用户名的输入框find_element_by_name("username"),利用clear将原来有可能存在的用户名清除并发送我们要输入的用户名到输入框send_keys(UserName)
其次我们定位到密码输入框find_element_by_name("password"),并发送我们要输入的密码到输入框send_keys(PassWord)
找到登陆框find_element_by_id("loginBtn"),并提交我们要输入的信息。
下一步就是是否成功登陆163邮箱的判定了,通过查找有用户名+@163.com的信息,如果有,则登陆成功。通过查找“账号或密码错误”字段来判断登陆失败的。
testPythonPlusSele.py
from selenium import webdriver
import unittest
import time
class Mail163(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Firefox()
self.driver.get("http://mail.163.com/")
def testlogin(self):
self.driver.find_element_by_name("username").clear()
UserName = "*****"
PassWord = "*****l"
self.driver.find_element_by_name("username").send_keys(UserName)
self.driver.find_element_by_name("password").send_keys(PassWord)
self.driver.find_element_by_id("loginBtn").submit()
ID = "_account_"+UserName+"@163.com"
Account = self.driver.find_elements_by_id(ID)
self.assertTrue(Account)
def testWrongPwdlogin(self):
self.driver.get("http://mail.163.com/")
self.driver.find_element_by_name("username").clear()
UserName = "*****"
PassWord = "*****"
self.driver.find_element_by_name("username").send_keys(UserName)
self.driver.find_element_by_name("password").send_keys(PassWord)
self.driver.find_element_by_id("loginBtn").submit()
pp = self.driver.find_element_by_xpath("/html/body/section/div[3]/div[2]/div[1]/p")
WrongInfo = pp.text
self.assertTrue("账号或密码错误" == WrongInfo)
def testWrongUserlogin(self):
self.driver.get("http://mail.163.com/")
self.driver.find_element_by_name("username").clear()
UserName = "*****"
PassWord = "*****"
self.driver.find_element_by_name("username").send_keys(UserName)
self.driver.find_element_by_name("password").send_keys(PassWord)
self.driver.find_element_by_id("loginBtn").submit()
pp = self.driver.find_element_by_xpath("/html/body/section/div[3]/div[2]/div[1]/p")
WrongInfo = pp.text
self.assertTrue("账号或密码错误" == WrongInfo)
def tearDown(self):
self.driver.quit()
在命令行上运行nosetests testPythonPlusSele, 就可以看到三个测试用例开始执行啦。
python:3.3.2
selenium:selenium-2.42.1-py
安装:直接通过setuptools安装selenium就好啦。
selenium2主推的webdriver,是通过调用相应的浏览器驱动来完成浏览器控制的,因此需要安装相应的浏览器驱动。
selenium是一个测试Web应用程序的工具,开源,免费,支持多种浏览器,FireFox,Chrome,IE,Opera,safari,android等,支持python语言,对web页面有较好的支持。
前期的环境搭建工作完成之后,就开始web测试之旅吧。
创建一个.py文件,我们命名为PythonPlusSelenium.py
#coding = utf-8
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://www.baidu.com")
F5运行,就可以看见火狐浏览器启动了,然后就看到在地址栏好像有人输入http://www.baidu.com一样,紧接着就看到baidu主页打开了。太自动化了,唯一不足的是速度有点慢,呵呵。
1.下面列出浏览器最基本也最简单的几个操作。
driver.quit() 退出了浏览器
driver.maximize_window() 将浏览器最大化显示
driver.set_window_size(1024,768) 设置浏览器显示的宽、高
driver.back() 模拟浏览器的后退功能退回到上一个页面
driver.forward() 前进
2.对鼠标操作的支持,对鼠标操作的支持都放在了webdriver.common.action_chains里面。
context_click() 右击
double_click() 双击
drag_and_drop() 拖动
move_to_element() 移动到某个元素上
click_and_hold() 左击
3.对键盘输入的支持
4.对下拉框的处理
5.对分页的支持
6.对滚动条的支持
7.对弹框的支持
selenium的具体API和支持的特性我就不一一介绍,很多文档有很详细的介绍。
由于我们前面介绍过python常见的几种测试框架doctest,unittest,nose等,那我们可以将这些测试框架引入到我们的python+selenium的自动化测试中来,我推荐使用nose。
以163邮箱登陆界面为例来进行测试用例编写。只考虑正确用户名+正确密码,正确用户名+错误密码,错误用户名+正确密码这几种情况。
首先导入selenium webdriver模块。导入unittest
我们将打开Firefox浏览器已经进入到163邮箱主页放置在setUp,将关闭浏览器放在tearDown。
我们定义三个测试用例 testlogin,testWrongPwdlogin和testWrongUserlogin。
首先我们定位到用户名的输入框find_element_by_name("username"),利用clear将原来有可能存在的用户名清除并发送我们要输入的用户名到输入框send_keys(UserName)
其次我们定位到密码输入框find_element_by_name("password"),并发送我们要输入的密码到输入框send_keys(PassWord)
找到登陆框find_element_by_id("loginBtn"),并提交我们要输入的信息。
下一步就是是否成功登陆163邮箱的判定了,通过查找有用户名+@163.com的信息,如果有,则登陆成功。通过查找“账号或密码错误”字段来判断登陆失败的。
testPythonPlusSele.py
from selenium import webdriver
import unittest
import time
class Mail163(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Firefox()
self.driver.get("http://mail.163.com/")
def testlogin(self):
self.driver.find_element_by_name("username").clear()
UserName = "*****"
PassWord = "*****l"
self.driver.find_element_by_name("username").send_keys(UserName)
self.driver.find_element_by_name("password").send_keys(PassWord)
self.driver.find_element_by_id("loginBtn").submit()
ID = "_account_"+UserName+"@163.com"
Account = self.driver.find_elements_by_id(ID)
self.assertTrue(Account)
def testWrongPwdlogin(self):
self.driver.get("http://mail.163.com/")
self.driver.find_element_by_name("username").clear()
UserName = "*****"
PassWord = "*****"
self.driver.find_element_by_name("username").send_keys(UserName)
self.driver.find_element_by_name("password").send_keys(PassWord)
self.driver.find_element_by_id("loginBtn").submit()
pp = self.driver.find_element_by_xpath("/html/body/section/div[3]/div[2]/div[1]/p")
WrongInfo = pp.text
self.assertTrue("账号或密码错误" == WrongInfo)
def testWrongUserlogin(self):
self.driver.get("http://mail.163.com/")
self.driver.find_element_by_name("username").clear()
UserName = "*****"
PassWord = "*****"
self.driver.find_element_by_name("username").send_keys(UserName)
self.driver.find_element_by_name("password").send_keys(PassWord)
self.driver.find_element_by_id("loginBtn").submit()
pp = self.driver.find_element_by_xpath("/html/body/section/div[3]/div[2]/div[1]/p")
WrongInfo = pp.text
self.assertTrue("账号或密码错误" == WrongInfo)
def tearDown(self):
self.driver.quit()
在命令行上运行nosetests testPythonPlusSele, 就可以看到三个测试用例开始执行啦。
相关文章推荐
- 轻松自动化---selenium-webdriver(python) (三) 简单元素的定位
- Python nose单元测试框架结合requests库进行web接口测试
- python 和 selenium实现web UI功能自动化测试框架
- 基于Selenium的web自动化框架(python)
- 一次简单完整的自动化登录测试-基于python+selenium进行cnblog的自动化登录测试
- python 和 selenium实现web UI功能自动化测试框架(米兔888)
- java web + testNG + ant + Selenium整合对IE浏览器的自动化测试二(一个简单的Selenium测试)
- Python selenium+webdriver 自动化测试例子
- python常用web框架简单性能测试结果分享(包含django、flask、bottle、tornado)
- 分层 Selenium 框架进行复杂 Web 应用程序自动化测试
- 用Python selenium+webdriver的一个简单的登录自动化测试--豆丁网登录测试
- Python+Selenium中级篇之0-设计自动化测试框架的前提技能介绍
- Python+Selenium框架设计篇之11-自动化测试报告的生成
- python+selenium个人开发的自动化测试框架
- Python爬虫工具 Selenium webdriver -自动化测试工具
- Selenium基于Python web自动化基础一 -- 基础汇总及简单操作
- Python+Selenium框架 ---自动化测试报告的生成
- Selenium基于Python 进行 web 自动化测试
- 集成C#测试框架和Selenium对于Web系统实现自动化测试