selenium 测试框架中使用grid】的更多相关文章

之前的测试框架:http://www.cnblogs.com/tobecrazy/p/4553444.html 配合Jenkins可持续集成:http://www.cnblogs.com/tobecrazy/p/4529399.html 在测试框架中使用Log4J 2 :http://www.cnblogs.com/tobecrazy/p/4557592.html 首先介绍一下grid ,selenium grid 是一种执行测试用例时使用的包含不同平台(windows.Linux.Androi…
之前已经写过一篇: selenium测试框架篇,页面对象和元素对象的管理 上次使用的excel作为Locator对象管理,由于excel处理不够方便,有以下缺点: 不能实现分page 加载Locator对象 不能够实现Locator对象重名 文件比较大,读写速度没有xml快 所以,重新写了使用dom4j操作xml,使用xml管理Locator对象,能够有效解决以上问题 首先,定义Locator文件 <?xml version="1.0" encoding="UTF-8&…
前期已经做好使用Jenkins做buildhttp://www.cnblogs.com/tobecrazy/p/4529399.html 做自动化框架,不可避免的就是对象库. 有一个好的对象库,可以让整个测试体系: 更容易维护 大大增加代码重用 增加测试系统的稳定性 这里先了解一下我所说的对象库: 所谓的页面对象,是指每一个真是的页面是一个对象. 比如zhihu的登陆页面是一个页面对象,http://www.zhihu.com/#signin 这个页面对象主要包含一个输入邮箱的输入框(一个元素对…
做自动化框架,不可避免的就是对象库. 有一个好的对象库,可以让整个测试体系: 更容易维护 大大增加代码重用 增加测试系统的稳定性 这里先了解一下我所说的对象库: 所谓的页面对象,是指每一个真是的页面是一个对象. 比如zhihu的登陆页面是一个页面对象,http://www.zhihu.com/#signin 这个页面对象主要包含一个输入邮箱的输入框(一个元素对象),一个输入密码的密码框 一个登陆框.当然,zhihu不止一个页面,有无数页面,每一个页面都可以封装为一个对象.而每个 页面的元素,也可…
目录 1.浏览器安装 2.浏览器驱动下载 (1)ChromeDriver for Chrome (2)Geckodriver for Firefox (3)IEDriverServer for IE (4)for Edge (5)OperaDriver for Opera 3.浏览器驱动与Python整合 4.安装Selenium (1)在线安装 (2)离线安装 5.使用Selenium启动谷歌浏览器 6.拓展说明 Selenium环境搭建步骤: 安装浏览器. 下载浏览器对应的Selenium驱…
之前的测试框架:http://www.cnblogs.com/tobecrazy/p/4553444.html 配合Jenkins可持续集成:http://www.cnblogs.com/tobecrazy/p/4529399.html 这次demo的代码已经放到github:https://github.com/tobecrazy/Demo 打log是一个测试框架必备的功能之一,trace测试执行的内容,使测试分析更容易和有规律可循.进而进一步处理测试log,实现自动分析测试结果. 现在jav…
在使用nose自带的xunit生成xml文件生成测试报告后,领导说报告不够炫,没有百分比效果,且在web自动化时的截图不美观,html很多情况下没有显示图片(nose框架截图方法这里),正好,allure_report报告框架满足所有要求. 一.介绍 这里可以查看官方信息,http://allure.qatools.ru/,报告还支持中文 还有前辈写的实践之路:https://testerhome.com/topics/5738 二.基于nose框架 从官网介绍中,我们可以得知,allure支持…
对selenium自带的截图功能进行封装: 以下为封装的代码,自定义一个.py文件即可,图片路径自己设置一个. #coding:utf-8 class Screen(object): ''' 封装的截图类,webdriver自带的get_screenshot_as_file() 在使用过程中,注意driver参数的传递 ''' def __init__(self, driver): ''' 写一个构造函数,有一个参数driver ''' self.driver = driver def save…
[ClassInitialize()] [ClassCleanup()] [TestInitialize()] [TestMethod] [TestCleanup()] 在执行一个或多个[TestMethod]输出时, [ClassInitialize()] 最先执行,[ClassCleanup()]最后执行,对于执行每个[TestMethod],执行顺序是[TestInitialize()] [TestMethod] [TestCleanup()] using System; using Mi…
# -*- coding:utf-8 -*- import unittest def runTest(testcaseclass,testcase=[]): suite = unittest.TestSuite() for case in testcase: suite.addTest(testcaseclass(case)) unittest.TextTestRunner().run(suite) class test(unittest.TestCase): def setUp(self):…