随笔分类 - python+selenium
摘要:目标:利用discover()方法去加载一个路径下所有的测试用例。这个方法是不是太适合我们现在的需求,例如我只需要跑testsuite包下所有测试用例,不管在里面有多少个包和多少个测试类,只需要用discover()搞定,来看看这个场景下TestRunner.py如何写。 import unitte
阅读全文
摘要:目标:利用makeSuite()方法,一次性加载一个类文件下所有测试用例到suite中去。 TestRunner.py代码: import unittest import testsuits from testsuits.test_baidu_search import BaiduSearch fr
阅读全文
摘要:目标:介绍unittest下addTest()方法来加载测试用例到测试套件中去。 1.新建测试脚本:test_get_page_title.py import unittest from framework.browser_engine import BrowserEngine from pageo
阅读全文
摘要:目标:实现三个页面,两个测试脚本。 练习场景:新建了2个页面对象:百度新闻首页,百度体育新闻首页,具体文件结构如下图,其他和之前项目层级结构保持不变。 1.百度首页页面类代码(baidu_homepage.py),定义了百度新闻的入口 from framework.base_page import
阅读全文
摘要:目标:在同一个类中,多个测试函数时候,测试固件如何写。 首先,我们先看一下如果存在两个测试函数的时候,程序是怎么执行的 test1.py import time import unittest from framework.browser_engine import BrowserEngine fr
阅读全文
摘要:目标:封装一个基类和介绍如何实现POM。关于基类,是这样定义的:把一些常见的页面操作的selenium封装到base_page.py这个类文件,以后每个POM中的页面类,都继承这个基类,这样每个页面类都有基类的方法。 1.在实现封装基类里,我们实现了元素八大方式的定位和截图类封装。具体项目层级结构如
阅读全文
摘要:目标:如何封装自己的日志类和浏览器引擎类。 相关步骤: 1.打开PyCharm,创建如下格式的项目层级结构,文件名称和我保持一样; 配置文件config.ini: # this is config file, only store browser type and server URL [brows
阅读全文
摘要:目标:学习框架设计中一种很普遍的设计思想-POM(Page Object Model) POM,中文字母意思是,页面对象模型,POM是一种最近几年非常流行的自动化测试模型,或者思想,POM不是一个框架,就是一个解决问题的思想。采用POM的目的,是为了解决前端中UI变化频繁,从而造成测试自动化脚本维护
阅读全文
摘要:目标:学习一个工具,叫unittest。 unittest是一个单元测试框架,是Python编程的单元测试框架。有时候,也做叫做“PyUnit”,是Junit的Python语言版本。这里了解下,Junit是Java语言的单元测试框架,Java还有一个很好用的单元测试框架叫TestNG,本系列只学习P
阅读全文
摘要:1.什么是自动化测试框架 简单来说,自动化测试框架就是由一些标准,协议,规则组成,提供脚本运行的环境。自动化测试框架能够提供很多便利给用户高效完成一些事情,例如,结构清晰开发脚本,多种方式、平台执行脚本,良好的报告去跟踪脚本执行结果。 框架具有以下一些优点: 1)代码复用 2)最大覆盖率 3)很低成
阅读全文
摘要:目标:继承的基本使用。 练习步骤: 1.在test1包名下新建一个classA.py,这个就是我们的父类,里面有一个打开chrome浏览器和打开百度首页的方法。 from selenium import webdriver import time class ClassA(object): def
阅读全文
摘要:目标:把截图类方法封装到BasePage.py文件里。 练习场景:百度首页截图 basepage.py代码: # coding = utf-8 import os import time from test1.logger import Logger mylog = Logger(logger='B
阅读全文
摘要:目标:如何写一个Python日志类,用来输出不同级别的日志信息到本地文件夹下的日志文件里。 练习场景: 我们需要封装一个简单的日志类,主要有以下内容: 1.生成的日志文件格式是 年月日分秒.log 2.生成的XXX.log文件存储在项目根目录下Logs文件夹下 3.这个日志类,支持INFO,ERRO
阅读全文
摘要:目标:Python中字符串切割操作。 在Python中自带的一个切割方法split(),这个方法不带参数,就默认安卓空格去切割字段,如果带参数,就按照参数去切割。 练习场景:百度搜索“selenium”,查看找到了多少个结果,我们需要单独摘取出这个数字。 具体代码: # coding=utf-8 i
阅读全文
摘要:在实际项目的开发,获取项目根路径的相对路径写法是很有必要的,不要总是绝对路径。 目标:如何去获取和打印格式化系统时间。 具体代码: # conding=utf-8 import time class GetTime(object): def get_system_time(self): print(
阅读全文
摘要:目标:Python中如何读取配置文件。任何一个项目,都涉及到了配置文件和管理和读写,Python支持很多配置文件的读写,这里我们就介绍一种配置文件格式的读取数据,叫ini文件。Python中有一个类ConfigParser支持读ini文件。 1.在项目下,新建一个文件夹,叫config,然后在这个文
阅读全文
摘要:目标:如何去封装几个简单的Selenium方法到我们自定义的类,这次我们编写一个类,叫浏览器引擎类,通过更改一个字符串的值,利用if语句去判断和控制启动那个浏览器。 暂时支持三大引擎:IE,Chrome,Firefox 练习场景:在test1这个包下新建一个browser_engine.py文件,然
阅读全文
摘要:目标:学习二次封装。把常用的几个webdriver的方法封装到自己写的几个类中器,这个封装过程叫二次封装Selenium方法。我们把打开站点,浏览器前进和后退,关闭和退出浏览器这个方法封装到一个新写的类中去。 按照如下层次结构在PyCharm中新建两个包和两个.py文件: 上图,baidu_sear
阅读全文
摘要:关于Python中类和函数及方法的调用,我们写在这个demo.py文件,具体代码如下: # coding = utf-8 class ClassA(object): string1 = "这是一个字符串。" def insteancefunc(self): print('这是一个实例方法。') pr
阅读全文
摘要:PyCharm 是一款功能强大的 Python 编辑器,具有跨平台性,鉴于目前最新版 PyCharm 使用教程较少,为了节约时间,来介绍一下 PyCharm 在 Windows下是如何安装的。 这是 PyCharm 的下载地址:http://www.jetbrains.com/pycharm/dow
阅读全文

浙公网安备 33010602011771号