自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 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 5021

原创 10、利用POI读取excel数据

自动化脚本和数据是分离的,这里是通过POI来实现excel的数据读取的。以下实现的是1个excel sheet表中可以分作多个表,判断一个表是否结束是根据空格来的。代码为:package common;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;impo...

2018-04-16 22:04:22 923

原创 9、多线程执行脚本

前面说的都是单线程执行脚本,效率太低了,现在我们用多线程执行,同时打开多个浏览器窗口行不行呢?试试呗。testng提供了多线程的执行方式,是通过配置testng.xml来实现的。配置如下:执行testng.xml同时打开了3个浏览器窗口:查看执行结果:都成功了...

2018-04-14 13:10:09 1609

原创 8、验证下脚本失败后是否能自动截图及保存出错信息到runlog目录下

我们将所有的id加上1,这样就找不到元素了,脚本就会失败。执行testng.xml后查看runlog目录:可以看到已经有了截图和出错信息文件,下面依次打开看看吧:看来是成功了。...

2018-04-14 13:00:28 229

原创 7、实现脚本执行失败 时自动截图并保存出错信息到文件中

自动化脚本如果失败了,凭借什么去快速定位呢?当然是截图和出错信息了,这里就来实现这两个功能。方法是重写TestListenerAdapter中的onTestFailure和onTestSkipped方法,在方法中添加截图和保存出错信息到文本的方法。新建一个webtestListener.java文件:代码如下:package framework;import java.io.File;import...

2018-04-14 12:52:19 1138

原创 6、创建并执行testng.xml查看报告

我们通过执行testng.xml来批量执行自动化脚本,下面将介绍如何创建testng.xml:1、选中需要执行的脚本——》右键——》TestNG——》Convert to TestNG2、见下图下面就产生了testng.xml文件看看testng里边是什么内容:执行这个xml即可批量执行我选中的脚本了。执行完成后可以看到结果:刷新下工程,可以发现多了一个 test-output目录,执行的报告在这...

2018-04-14 12:42:06 2167 1

原创 5、编写自动化脚本

前面准备工作已完成,可以开始写脚本了。重点见红框1、在类前面添加监听Listener,当然也可以在testng.xml中设置,后面再说2、webtestListener.driver = driver;这句将当前的driver传递给webtestListener的driver,才能截图成功,见后续代码下面将依次贴出脚本代码:1、test_baidu_news.java代码:package test...

2018-04-14 12:21:02 3588 2

原创 4、采用POM模型封装各页面元素及方法

这里简单封装了4个页面的元素及方法:下面将依次贴出代码:1、baidu_home_page.java代码:package pageobjects;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import framework.basepage;public class baidu_home_pa...

2018-04-14 12:12:22 839

原创 3、对selenium常用方法进行二次封装

在basepage.java中对selenium常用方法进行封装,后续页面元素封装都继承该类。重点见红框,构造函数需要传入一个driver,这是为了保证写脚本时所使用的是同一个driver代码如下:package framework;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openq...

2018-04-14 12:01:51 1542

原创 2、配置文件config.properties及浏览器启动

配置文件如下:浏览器启动选择:新建BrowserEngine.java文件,代码如下:package framework;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.util.Properties;import org.openqa.selenium...

2018-04-14 11:55:17 1492

原创 1、代码结构预览

不多说,直接上图:

2018-04-14 11:48:12 674

原创 7、查看批量执行脚本,脚本失败时是否有截图、错误文件生成及HTML报告生成

这里将页面元素的id加上1(这样当然就定位不到元素了,会出错),执行所有脚本(其实就2个,呵呵)执行完成2个脚本均失败,runlog中按用例名创建文件夹并将失败截图及错误信息保存在其中1、失败截图fail.png:2、错误信息文件log.txt:3、HTML报告至此,一个简单的自动化框架搭建完成。...

2018-04-12 21:34:57 471

原创 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 305

原创 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 17409

原创 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 924

原创 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 1179

原创 2、配置文件config.ini及浏览器启动

config.ini文件主要存放了一些如driver类型、访问的URL,用户名,密码(当然应当加密)等等的变量,定义这个配置文件的目的是为了将来测试条件发生变化时,如需要用IE或火狐浏览器跑自动化,又如URL、用户名、密码发生变化时,修改配置文件中的变量即可。既然新建了这么个config.ini文件,如何读取到里边的变量呢,下面就和浏览器的启动一起介绍。新建一个browser_engine.py,...

2018-04-12 20:47:00 3966

原创 1、代码结构介绍

首先看看总体的代码结构是怎么样的,后续将逐一介绍每个目录及文件。一、framework下:1、basepage.py是父类页面类,里边二次封装了一些常用的selenium方法,各页面继承该父页面类,达到代码简化及复用的效果。2、browser_engine.py是浏览器选择及启动类。二、pageobjects下是各页面的元素及方法封装。三、runlog目录下存放的是失败截图及错误信息,用于失败脚本...

2018-04-11 23:11:14 6772

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除