随笔分类 - 从零开始Python+Selenium
摘要:在工作中除了标准的Chrome浏览器或者firefox浏览器外,也会遇到非标准的浏览器,比如自定义的浏览器,或者360等浏览器。 在这类浏览器中可以通过自定义的方式启动,方式如下 from selenium import webdriver from selenium.webdriver.chrom
阅读全文
摘要:上一篇中说了如何新建一个Project,接下来,我们讲继续详细的讨论如何去设置相关的配置。 1.源码管理 前置条件:有安装Git插件 a,进入配置页面 b,源码管理选择Git,稍等一下会自动连接上 2.构建触发器 a, Build Periodically,周期性进行构建,某一个时刻自动去构建。 定
阅读全文
摘要:1.进入Jenkins主页面后,点击左上角的 新建Item 2.输入项目名称 - 点击 Freestyle project - 点击 确定 3. 进行相关配置 其中包括 General,源码管理,构建触发器,构建环境,构建,构建后操作 General 一般的描述 源码管理 包括目前比较常用的SVN,
阅读全文
摘要:借着这个小项目的机会,顺便学一下持续继承,这个听起来高大上的东西。 很多时候我们想实现的就是一旦程序猿提交了代码,就能自动部署,测试就能自动运行,然后自动发布,实现这种流水线的模式,然后减少人工的参与。 我简单理解的持续集成和持续交付就是这个意思。 Jenkins就是一个可以起到串联各个步骤的工具。
阅读全文
摘要:在脚本运行中,我们可能需要知道脚本运行到哪个地方了,运行了些什么东西,输出的信息哪些比较严重,如果直接在代码里面print输出很不友好,也不适合进行筛选,所以引进了日志 在日志中,可以通过日志的级别来筛选显示我们需要的信息 日志级别 数值 CRITICAL 50 ERROR 40 WARNING 3
阅读全文
摘要:前面一个基础的小框架已经形成,但是依然有很多值得优化的地方,比如在Browser_engine.py中,将browser的类型硬编码写了进去,这在代码里面其实是很不好的一种方式 比如我们需要将Chrome改成Firefox的时候,就需要去改写代码。这篇我们将这些需要改变的值写进配置文件中,然后代码去
阅读全文
摘要:新建文件夹test_report,在网上下载HTMLTestRunner.py文件放在Utils包中 注意,如果你使用的是python 3.x的话,HTMLTestRunner.py文件也需要用python 3.x的 接下来,我们改造TestRunner文件 # coding=utf-8 impor
阅读全文
摘要:在一个项目中往往不可能只有一个用例,也不可能只有一个页面,所有这里就涉及到用例的组织方式 unittest最核心的四部分是:TestCase,TestSuite,TestFixture,TestRunner 1.TestCase,就是外面常说的用例,记住需要以test开头 2.TestSuite,就
阅读全文
摘要:文章太长不看版: setUp(): 每个测试case运行之前运行 tearDown(): 每个测试case运行完之后执行 setUpClass(): 必须使用 @classmethod装饰器, 所有case运行之前只运行一次 tearDownClass(): 必须使用 @classmethod装饰器
阅读全文
摘要:前面都做了那么多铺垫,终于进入正题了,前面的文章把基类写了,流程类写了,本篇便进入断言阶段 判断预期结果和实际结果是否一致 在TestSuites包下,建立test_baidu.py文件 from Base import * from PageObjects import * from Flow i
阅读全文
摘要:上篇说到,我们的测试步骤 1,打开 百度 2,搜索关键字selenium 3,点击 知道 4,获取百度知道页第一条链接的href属性 5,对比该属性和预期结果是否一样 其实可以将这5个步骤分成三类 1,打开页面 2,进行测试 3,对比实际结果和预期结果 流程类,就是将测试步骤打包在一起,比如这个用例
阅读全文
摘要:今天开始的文章就开始涉及到具体的业务逻辑流程了 我们要测试的一个用例步骤为 1,打开 百度 2,搜索关键字selenium 3,点击 知道 4,获取百度知道页第一条链接的href属性 5,对比该属性和预期结果是否一样 页面类主要是封装在该页面或者该流程上的一些基本方法,以达到复用代码便于维护的目的
阅读全文
摘要:在Base包中新建一个BasePage.py 这个文件中,主要封装一些基础的操作,比如说打开url,关闭浏览器,点击,输入,获取元素等与业务逻辑无关的最底层的操作 这个类,可以根据不同的项目需求进行拓展,本文只是举了一个简单的例子 class BasePage(object): def __init
阅读全文
摘要:结构目录如上: Base包:存放一些基类,这次我们要封装的浏览器引擎类放在这个包里面 TestSuites:存放测试用例,新建Test.py来测试这个引擎类 Utils:存放工具类,chrome和firefox的驱动放在这里面 Browser_engine.py import os from sel
阅读全文
摘要:前面一直在说,我理解的UI自动化就是 启动 - 定位 - 操作 - 断言 前面所有的脚本,几乎都是在一段代码中,将这四个步骤全部揉在了一起,一两个case倒是没有什么大问题,要是让你维护100个,1000个case呢。 如果某一天一个UI的元素定位发生了变化,其中涉及到500条case,那岂不是要改
阅读全文
摘要:听大佬讲过自动化测试的三个层次 1.手工测试用例到自动化测试脚本的转化 2.设计/维护自动化测试框架 3.流程的自动化方案设计,比如说一键打包,自动部署,自动测试,生成报告等 前面的例子,基本都是讲解第一阶段的内容,从这篇开始,将开始包含一些selenium的二次封装的东西,以及框架的设计方案,工程
阅读全文
摘要:前面有说过在测试过程中可以截图,截图后,我们可以通过对比截图的相似度,来进行断言 本文介绍两个可以对比截图相似度的方法 方法一: from PIL import Image import math import operator from functools import reduce def im
阅读全文
摘要:在测试过程中,有可能会遇到访问网站需要授权的问题,只有进了这个门,才能谈继续操作的问题 这个问题的关键代码在于 driver.get("http://username:password@xxxxx.com") 将网站授权的用户名密码按上面的格式放置,就可以正常访问网站啦
阅读全文
摘要:在有的测试网站中,图片过多,很影响加载速度,所以可以不影响业务流程的情况下,屏蔽掉网站上的图片,进行测试 思路就是启动一个自定义的浏览器,自行配置相关设置就可以了 from selenium import webdriver from selenium.webdriver.chrome.option
阅读全文
摘要:在UI自动化测试中,往往需要页面加载完成才能进行下一步操作,而一般情况下脚本的运行速度又很快。所以经常会出现脚本运行过快,页面还没加载出来,就进行操作,就会报错。 所以合适的等待,在自动化测试中有比较重要的作用。 本文主要介绍,自动化工程中,比较常用的三种等待方式 1.强制等待 time.sleep
阅读全文
浙公网安备 33010602011771号