python+selenium2+unittest自动化测试
文章平均质量分 56
米尔大哥
这个作者很懒,什么都没留下…
展开
-
用jenkins持续集成码云上的自动化工程
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")原创 2019-02-18 12:12:07 · 499 阅读 · 0 评论 -
封装常用的webdriver方法
from selenium.webdriver.common.by import Byimport timefrom selenium import webdriverfrom selenium.webdriver.remote.webelement import WebElementfrom selenium.webdriver.support import expected_con...原创 2019-03-14 17:04:56 · 515 阅读 · 0 评论 -
读取excel
def read_excel_by_name(file_path, sheet_name, table_name): wb = xlrd.open_workbook(file_path) sheet = wb.sheet_by_name(sheet_name) col_val = sheet.col_values(0) nrows = sheet.nrows ...原创 2019-03-07 21:56:14 · 290 阅读 · 0 评论 -
自己的ui自动化工程在自己想要的地方引入截图
原创 2019-07-22 22:42:57 · 228 阅读 · 0 评论 -
通过输入框文字及按钮文字定位元素以及通过WebDriverWait封装显示等待
from selenium.webdriver.common.by import Byimport timefrom selenium import webdriverfrom selenium.webdriver.remote.webelement import WebElementfrom selenium.webdriver.support import expected_con...原创 2019-02-13 17:46:35 · 1251 阅读 · 0 评论 -
unittest + excel 组织执行测试用例并用BeautifuReport展示报告
需求背景:当写完了很多用例后,只想批量执行部分测试用例应该怎么办?解决方案:用excel组织测试用例,比如在想执行的测试用例的“是否执行”填入1为执行,填入0则不执行,如下excel表(表名config.xls):测试用例 测试用例中文名称 对应的数据表 开发者 是否执行 test_zhaolei 搜索赵雷 null 黄佩勤 1 ...原创 2019-01-30 15:57:18 · 1469 阅读 · 2 评论 -
通过tomorrow实现自动化脚本的并发执行(如果tomorrow不行则安装tomorrow3)
import unittestimport os, datetime, timefrom BeautifulReport import BeautifulReportfrom framework.excel_oprate import read_configfrom tomorrow import threadsroot_dir = os.path.dirname(os.path.a...原创 2019-02-21 17:42:29 · 1043 阅读 · 0 评论 -
8、利用xlrd读取excel数据
在同一个sheet表中可以有多个表,表与表之间用空格来隔离,遇到空格,则认为这个表结束了。代码如下:import xlrdfile_path = "C:/Users/Administrator/Desktop/python/excel/1.xlsx"sheet_name = '表2'table = '学生表'def read_excel_by_name(file=file_path,sheet_n...原创 2018-04-16 22:18:36 · 4976 阅读 · 0 评论 -
2、配置文件config.ini及浏览器启动
config.ini文件主要存放了一些如driver类型、访问的URL,用户名,密码(当然应当加密)等等的变量,定义这个配置文件的目的是为了将来测试条件发生变化时,如需要用IE或火狐浏览器跑自动化,又如URL、用户名、密码发生变化时,修改配置文件中的变量即可。既然新建了这么个config.ini文件,如何读取到里边的变量呢,下面就和浏览器的启动一起介绍。新建一个browser_engine.py,...原创 2018-04-12 20:47:00 · 3845 阅读 · 0 评论 -
3、在basepage.py中对selenium方法进行二次封装
新建一个basepage.py,姑且叫做基础页面类吧,里边对selenium的常用方法做了封装,采用POM模式封装的页面都继承这个类,以达到代码简化及代码复用的效果。# coding=utf-8import timefrom framework.browser_engine import BrowserEngineclass BasePage(object): # be = Br...原创 2018-04-12 20:54:35 · 1158 阅读 · 0 评论 -
4、对各页面元素及方法进行封装
所谓的POM(Page Object Model)设计模式其实就是把一个页面当作一个对象,将一个页面中的所有元素及方法封装在一个java类中。下面封装了3个页面的元素:依次打开看看吧。1、home_baidu.py# -*- coding:utf-8 -*-from framework.basepage import BasePageclass Home_Baidu(BasePage): ...原创 2018-04-12 21:06:18 · 905 阅读 · 0 评论 -
5、编写自动化测试脚本
上面已经对页面元素进行了封装,接下来就是动手写脚本了。这里写了2个脚本,直接上代码:1、test_baidu_news.py# -*- coding:utf-8 -*-import unittestimport sys,osfrom framework.browser_engine import BrowserEnginefrom pageobjects.home_baidu import...原创 2018-04-12 21:17:31 · 17271 阅读 · 0 评论 -
6、批量执行脚本入口excute_cases.py
新建一个excute_cases.py作为执行所有脚本的入口。# -*- coding:utf-8 -*-import HTMLTestRunnerimport unittestimport os,timereport_path = os.getcwd() + "\\test_report\\"now = time.strftime("%Y-%m-%d-%H_%M_%S",time.l...原创 2018-04-12 21:22:10 · 272 阅读 · 0 评论 -
7、查看批量执行脚本,脚本失败时是否有截图、错误文件生成及HTML报告生成
这里将页面元素的id加上1(这样当然就定位不到元素了,会出错),执行所有脚本(其实就2个,呵呵)执行完成2个脚本均失败,runlog中按用例名创建文件夹并将失败截图及错误信息保存在其中1、失败截图fail.png:2、错误信息文件log.txt:3、HTML报告至此,一个简单的自动化框架搭建完成。...原创 2018-04-12 21:34:57 · 430 阅读 · 0 评论 -
python的变量注解,即声明为指定类型,使得代码可以有智能补全
python 是动态语言,不需声明变量类型即可使用,但这样也会导致一些问题,比如在做自动化测试时,如果想通过driver. 来带出webdriver的操作方法比如find_element_by_id()等等方法是不支持的,那么现在有一个解决办法,就是声明该driver是webdriver类型就可以了,方法见下面截图:...原创 2018-12-29 14:11:21 · 4000 阅读 · 2 评论 -
通过cookie实现免登录的两种方法
有两种通过cookie实现免登录的方法,我将以登录B站并进入“动态”页面为例分别演示这两种方法。方法1:通过配置Chrom的options来实现 options.add_argument("--user-data-dir=C:/Users/Administrator/AppData/Local/Google/Chrome/User Data")这种方法实际上是直接读取本地电脑上的用户数...原创 2018-12-30 18:02:14 · 11830 阅读 · 1 评论 -
selenium grid 的使用,实现在另一台电脑运行自动化测试脚本
首先看下要实现的效果:在我电脑上已经写好了测试脚本,现在想要在另一同事电脑上运行该脚本。我自己电脑相当于服务器(因为脚本一般都是放在服务器上),但执行时需要在执行机上执行(同事的电脑相当于执行机,执行机只需要有java环境和chromedriver及谷歌浏览器)步骤1:在本机上打开cmd先ping一下同事电脑:ping 192.168.93.31 ,能ping通是前提,如...原创 2019-01-25 18:47:15 · 2146 阅读 · 0 评论 -
自动化测试报告BeautifulReport
1.下载BeautifulReportgit地址:https://github.com/TesterlifeRaymond/BeautifulReport,并将下载的BeautifulReport整个文件包放到本地python的/Lib/site-packages/目录下,如下所示:编辑BeautifulReport.py文件的第378和第380行,如下:2.创建执行用例的文件...原创 2019-01-29 15:27:50 · 23278 阅读 · 9 评论 -
1、代码结构介绍
首先看看总体的代码结构是怎么样的,后续将逐一介绍每个目录及文件。一、framework下:1、basepage.py是父类页面类,里边二次封装了一些常用的selenium方法,各页面继承该父页面类,达到代码简化及复用的效果。2、browser_engine.py是浏览器选择及启动类。二、pageobjects下是各页面的元素及方法封装。三、runlog目录下存放的是失败截图及错误信息,用于失败脚本...原创 2018-04-11 23:11:14 · 6475 阅读 · 0 评论