本文共 3913 字,大约阅读时间需要 13 分钟。
通过测试工具或者其他手段,按照测试人员的预定计划对软件产品进行测试
1.自动化功能测试
2.自动化性能测试
1.使用自动化的前提条件
2.使用自动化的场景
1.历史版本
一代:现在基本不使用
二代:主推webdriver, 是selenium RC + webdriver 的集合
三代:移除selenium,只剩webdriver
2.selenium组件Selenium IDE:主要用来录屏,几乎不用
Selenium RC:远程控制(功能简陋)
Selenium WebDriver:属于RC的升级版,直接发送命令给浏览器,并检索结果,主要使用
Selenium Grid:网格用于运行在不同的机器,不同的浏览器同时以最小化执行时间并行测试的工具,使selenium同时运行于多个平台。
3.RC 与 Webdriver对比RC需搭建服务,webdriver直接安装驱
RC通过js服务与浏览器互动,速度较慢;Webdriver直接通过本地驱动,速度较快
RC不支持无头(不开启界面,只在内存中运行的浏览器,所谓的虚拟浏览器),而Webdriver支持;
webdriver面向对象
webdriver功能强大
webdriver可面向移动端,也就是可测试iphone/Andrioid应用程序
1.HTTPS:
2.断言:
3.Selenium的元素定位
4.表单切换
5.弹出框操作
6.下拉框操作
下拉框的操作到交给Select类进行处理 from selenium.webdriver.support.select import Select selobj = Select(element) #下拉框元素传入Selement7.调用js代码
重要的js代码8.浏览器等待
显示等待(隔几秒扫描一次):
隐式等待(相当于sleep):
9.cookies操作
网站为了辨别用户身份、进行会话保持而存储在本地终端上的数据(通常经过加密);http为无状态协议,不对之前的访问状态做管理,也就是说无法根据之前的登录状态进行本次访问的处理。10.封装
from selenium import webdriverimport timeclass Common(object): #初始化 def _init_(self): #创建浏览器 self.driver = webdriver.Firefox() #浏览器最大化 self.driver.maximize_window() def open_url(self, url): self.driver.get(url) self.driver.implicatly_wait(10) def locateElement(self, locate_type, value): el = None if locate_type == 'id': el = self.driver.find_element_by_id(value) elif locate_type = 'name': el = self.driver.find_element_by_name(value) elif locate_type = 'class': el = self.driver.find_element_by_class_name(value) elif locate_type = 'tag': el = self.driver.find_element_by_tag_name(value) elif locate_type = 'text': el = self.driver.find_element_by_link_text(value) elif locate_type = 'partial': el = self.driver.find_element_by_partial_link_text(value) elif locate_type = 'xpath': el = self.driver.find_element_by_xpath(value) elif locate_type = 'css': el = self.driver.find_element_by_css_selector(value) # 返回定义到的元素 if el: return el def click(self, locate_type, value): el = self.locateElement(locate_type, value) el.click() def input_data(self, locate_type, value, data): el = self.locateElement(locate_type, value) el.send_keys(data) # 获取定位到的元素中的文本内容xxx def get_text(self, locate_type, value): el = self.locateElement(locate_type, value) return el.text # 获取定位到的元素中的标签属性 def get_att(self, locate_type, value): el = self.locateElement(locate_type, value) return el.get_attribute(data) #结束的时候清理了 def _del_(self): time.sleep(3) self.driver.quit()
转载地址:http://mwjmf.baihongyu.com/