1.定位元素(id.name.class.link.partial link) (1)find_element_by_id() 用百度定位测试,用firebug查看定位元素 ,输入框的id为“kw”,[百度一下]按钮的id为“su”. from selenium import webdriver #导入selenium的webdriver包 driver = webdriver.Firefox() driver.get("https://www.baidu.com") driver.f…
1.浏览器大小的控制 Set_window_size()是控制浏览器大小 Maximize_window()浏览器全屏显示 from selenium import webdriver #导入selenium的webdriver包 from time import sleep driver = webdriver.Firefox() driver.get("https://www.baidu.com") sleep(10) #等待10秒钟 driver.set_window_size(…
1.unittest单元测试框架文件结构 unittest是python单元测试框架之一,unittest测试框架的主要文件结构: File >report >all_case.py >test_case >__init__.py >test_case1..... >public >__init__.py >login.py >loginout.py test_case文件夹主要存放测试用例,且测试用例命名以test_开头 public文件夹是test…
unittest框架的学习得益于虫师的<selenium+python自动化实践>这一书,该书讲得很详细,大家可以去看下,我也只学到一点点用于工作中,闲暇时记录下自己所学才能更加印象深刻.unittest框架学习需要掌握以下知识点: (1)Selenium原理及工具使用 (2)webdriver元素定位,id,name,class name,css seletor,xpath (3)python语言基础,模块,参数化,语言,装饰器 (4)unittest框架认识及学习:模块化,断言,参数化,数…
python之unittest框架实现接口测试实例 接口测试的方法有很多种,具体到工具有postman,jmeter,fiddler等,但是工具的局限性是测试数据的组织较差,接口的返回工具的判断有限,工具也不能很好的生成可视化的报告和结果数据,使用代码来进行接口测试就便于进行更多的拓展和结果输出. 首先安装Requests库(需要安装好python环境)在cmd窗口运行如下命令: pip install requests requests功能特性Requests 完全满足今日 web 的需求.…
1.简介 从这一篇开始介绍和分享Java+Selenium+POM的简单自动化测试框架设计.第一个设计点,就是支持跨浏览器测试. 宏哥自己认为的支持跨浏览器测试就是:同一个测试用例,支持用不同浏览器去执行.我们这里只考虑Windows平台的浏览器,而且只关注火狐和谷歌浏览器的自动化测试,我们已经知道IE执行很慢,而且容易出问题,而且现在Windows系统也在逐步取消IE浏览器. 那到底要怎么做,才能支持一个自动化用例能够在不同浏览器上运行?宏哥这里是通过读取配置文件的值,来切换不同浏览器运行测试…
转自:http://www.cnblogs.com/fnng/p/3300788.html 学习unittest 很好的一个切入点就是从selenium IDE 录制导出脚本.相信不少新手学习selenium 也是从IED 开始的. IDE学习参考: 菜鸟学自动化测试(一)----selenium IDE 借助IED 录制脚本 将脚本导出,保存为baidu.py ,通过python IDLE编辑器打开.如下: from selenium import webdriver from seleniu…
1.Webdriver原理 webdirver是一款web自动化操作工具,为浏览器提供统一的webdriver接口,由client也就是我们的测试脚本提交请求,remote server浏览器进行响应请求,相对于原来selenium1中的selenium rc更加的简便,对浏览器的操作更加灵活. 2.定位 (1)元素的定位: 元素的定位可以通过id,name,class name,tag name,link_text,partial_link_text,css selector,xpath等 语…
部分内容来自:https://www.cnblogs.com/klb561/p/8858122.html 一.基础介绍 核心概念:test case, testsuite, TestLoder,TextTestRunner,TextTestResult, test fixture TestCase(测试用例): 所有测试用例的基类,它是软件 测试中最基本的组成单元. 一个test case就是一个测试用例,是一个完整的测试流程,包括测试前环境的搭建setUp,执行测试代码(run),以及测试后环…
def addCleanup(self, function, *args, **kwargs): """Add a function, with arguments, to be called when the test is completed. Functions added are called on a LIFO basis and are called after tearDown on test failure or success. Cleanup items…
一.unittest框架 unittest属于python内置的单元测试框架. 二.unittest框架的核心概念 test case:指测试用例.unittest中提供了一个基本类TestCase,可以用来创建新的测试用例: ​test fixure:测试夹具,用于测试用例环境的搭建和销毁.即用例测试前准备环境的搭建(SetUp前置条件),测试后环境的还原(TearDown后置条件),比如测试前需要登录获取token等就是测试用例需要的环境,运行完后执行下一个用例前需要还原环境,以免影响下一条…
unittest框架自带断言,如果想用assert断言,一定要引入unittest.TestCase框架才行,不然不会自动识别assert断言…
上一篇是元素的定位,那么定位元素的目的就是对元素进行操作,例如写入文本,点击按钮,拖动等等的操作 (1)简单元素操作 简单元素操作 find_element_by_id("kw").clear() #文本框清空 find_element_by_id("kw").send_keys("selenium") #文本框输入 find_element_by_id("button").click() #点击按钮操作 (2)webElem…
1.对话框,下拉框 (1)对话框的有两种,一种是iframe格式的,需要switch_to_iframe()进行定位,现在大部分的对话框是div格式的,这种格式的可以通过层级定位来定位元素,先定位对话框的div,然后再对对话框的元素进行定位. (2)另外的弹出消息提示框有三种类型:alert,comfirm,prompt,三种类型的区别为; alert消息提示框仅提供“确定”按钮,用于警告等提示,comfirm提示框提供“是”和“否”的选择,prompt则是提示输入对话框,包含提示信息,输入文本…
unittest进行python代码单元测试 calculator.py--被测试类 #!/usr/bin/env python # -*- coding: utf-8 -*- # 将要被测试的类 class Calculator(object): def __init__(self, a, b): self.a = a self.b = b def add(self): return self.a + self.b def sub(self): return self.a - self.b d…
因为webdriver的api方法很长,再加上大多数的定位方式是以xpath方式定位,更加让代码看起来超级长,为了使整体的代码看起来整洁,对webdriver进行封装,学习资料来源于虫师的<selenium +  python自动化测试>一书. 在与测试用例文件夹同一目录下新建一个文件夹package,用来放置封装方法的模块文件 我们将webdriver二次封装的文件命名为location.py from selenium import webdriver from test_case.pub…
接触的项目分页的形式是以下形式: 想要获取总页数后,遍历执行翻页的功能,但由于分页是以javascript方法实现的,每次点击确定按钮后,页面就回刷新,webelement元素过期无法遍历下一个进行翻页操作,报StaleElementReferenceException的错误,所以对于这个操作折腾了半天还是放弃了. 对于分页的操作实现了以下功能: (1)获取总页数并输出 (2)遍历操作‘上一页’,‘下一页’按钮,实现翻页功能 (3)在输入页数的文本框中输入页数,点击确定,实现翻页功能 def p…
在自动化测试过程中经常要测试到添加用户的操作,每次都要输入中文,原本是找了十几个中文写成了列表,然后从列表中随机取出填入用户名文本框中,随着测试的增加,发现同名的人搜索出来一大堆,最后在网上找了个随机生成姓名的方法,在此记录下,学习来源:https://segmentfault.com/q/1010000006941249 姓氏和名字的列表: import random import string last_names = ['赵', '钱', '孙', '李', '周', '吴', '郑',…
在写脚本的时候,发现导入某些模块,经常报错提示导入模块失败,这里来恶补下python导入模块的知识点. 1.模块导入时文件查找顺序 在脚本中,import xxx模块时的具体步骤: (1)新建一个module (2)将module插入到sys.module (3)查找module的路径,查找的顺序为先查找当前使用导入模块的文件同一级目录,之后是python的搜索模块的路径集sys.path,最后是python所添加的默认环境变量的路径Python path (4)module查找到之后装载mod…
刚开始学习selenium自动化测试时,犯了一个不该犯的错误,偷懒,使用火狐浏览器中的扩展FIREBUG,FIREPATH来辅助定位. 虽然用的定位方法大多数是使用XPATH方法,但是是工具定位出来的,不是个人定位的.影响了自己XPATH的学习.后来,在学习APPIUM 工具时,恶补了XPATH的定位方法. 具体的定位方法参照我博客里之前的两篇文章: http://www.cnblogs.com/star12111/p/8575581.htmlhttp://www.cnblogs.com/sta…
做了自动化测试这么久了,一直没有梳理到元素定位这一块的内容,其重要性不言而喻.趁着周末有时间,梳理一下. 1,通过id定位 driver.find_element_by_css_selector("#kw").clear() driver.find_element_by_css_selector("#kw").send_keys("selenium") 2,通过class定位 driver.find_element_by_css_selector…
环境:PyCharm 2016.2 + python 3.5 待测试的类:(Widget.py) 测试类:(Auto.py) 测试结果: 总结:1.第一步:先写好测试类2.第二步:导入unittest模块及测试的类,运用setup()方法做测试前的准备工作,如建立数据库连接,运用teardown()方法做测试后的清除工作,如取消数据库的链接,再对类中的方法逐一做测试.3.第三步: 写suite()的全局方法,将要测试的方法,一一加入.测试结果,有几个测试用例就有几个. 最后显示OK,表示通过.…
(明天学测试用例集合及输出测试报告!!!) import unittest import requests import json class Test_get(unittest.TestCase): #test类必须要Test_开头,且继承于unittest中的TestCase def setup(self): #测试装置 print(‘start test...’) def tearDown(self): #测试完成并清理 print('test close.') def test_get1…
unittest 当中为我们提供了许多加载用例的方法,这里说下常用的两种方法...推荐使用第二种 第一种加载测试用例的方法:使用加载器加载两个模块 需要把所有的模块加载到套件中 那么就可以自动的运行所有的模块 执行顺序是按照导入测试用例的先后来执行的,先执行 num_multi,在执行 num_add import unittest # 导入写好的测试用例,可以使用 as 重新命名更加简短方便 from Python_0715_unittest import lemon_06_unittest_…
常用的断言方法如下: assertFalse:为假时返回True:self.assertFalse(表达式,“表达式为true时打印的message”) assertTrue:为真时返回True:self.assertTrue(表达式,“表达式为false时打印的message”) asserEqual:相等返回True:self.assertEqual(表达式1,表达式2,“表达式1不等于表达式2时打印的message”) assertNotEqual:不相等返回True:self.asser…
前面已经把环境搭建好了,下面我们就正式学习selenium的webdriver框架.本篇主要讲如何用Python调用webdriver框架的API,对浏览器做一些基本的操作,如打开.前进.后退.刷新.设置窗口大小.截屏.退出等操作. 1,打开浏览器 首先要从selenium中引入webdriver 然后调用浏览器:Chrome,IE,Firefox 访问百度,对浏览器进行相应的操作…
前言 从这篇开始,正式学习selenium的webdriver框架.我们平常说的 selenium自动化,其实它并不是类似于QTP之类的有GUI界面的可视化工具,我们要学的是webdriver框架的API.本篇主要讲如何用Python调用webdriver框架的API,对浏览器做一些常规的操作,如打开.前进.后退.刷新.设置窗口大小.截屏.退出等操作. 一.打开网站1.第一步:从selenium里面导入webdriver模块:2.打开Firefox浏览器(Ie和Chrome对应下面的):3.打开…
本次写的是针对有代码基础的,没基础建议先去学基础,以下所有描述内容都是我已经在公司项目实践成功的!仅供参考 整体思路: 1.接口自动化用的是Python中unittest框架 2.所有的测试数据用例存放Excel表 3.封装一套读取和写入的Excel方法 4.重写request方法(为了从Excel读取数据后对数据作分析和判断并在测试报告生成相关信息) 5.通过HTMLTestRunner运行测试用例生成网页版报告 6.将自动化脚本放到公司git上,方便其他人员获取你的代码进行编写脚本,后面会具…
在利用单元测试框架执行测试用例的过程中,有时只需要执行一部分用例,或者跳过某些暂不需要执行的用例,python的unittest框架就内置这样的功能. 前面的博客介绍了unittest框架的测试用例加载和批量执行的内容,這篇博客,介绍下在unittest框架中,如何跳过预期的测试用例... 1.unittest.skip()方法 跳过测试和预期失败的功能,是python3.1版本开始,出现的新功能.unittest支持跳过单个测试用例甚至整个测试类. skip()的各个方法说明如下: 方法 说明…
前面已经把环境搭建好了,这从这篇开始,正式学习selenium的webdriver框架.我们平常说的 selenium自动化,其实它并不是类似于QTP之类的有GUI界面的可视化工具,我们要学的是webdriver框架的API.本篇主要讲如何用Python调用webdriver框架的API,对浏览器做一些常规的操作,如打开.前进.后退.刷新.设置窗口大小.截屏.退出等操作.一.打开网站1.第一步:从selenium里面导入webdriver模块2.打开Firefox浏览器(Ie和Chrome对应下…