
python+selenium+pytest+PO模式
文章平均质量分 83
我不管,我爱测试
文笔不好,看不懂或者不理解欢迎提问,看到评论必回复
展开
-
PO模式 - 目录结构
前言:我们为什么要用到PO模式?因为随着时间的迁移。测试套件将持续的增长,脚本也将变得越来越多。如果需要维护10个页面,100个页面,甚至1000个呢?那么页面元素的任何改变都会让我们的脚本维护变得繁琐复杂,而且变得耗时易出错那怎么解决呢?ui自动化中,常用的一种方式,引入Page Object(PO):页面对象模式来解决,po能让我们的测试代码变得可读性更好,可维护性高,复用性高。PO是...原创 2019-07-26 15:11:08 · 6745 阅读 · 0 评论 -
PO模式 - common文件路径、存储路径封装(不细说)
首先我们先在Testcfg下创建 online.cfg、online_test.cfg、test.cfgonline.cfg:保存正式环境路径online_test.cfg:用于判断是否是正式/测试环境,True为正式环境,false为测试环境test.cfg:保存测试环境为什么这么做,因为每个公司都会有不同的环境,所以这个切换环境的时候不用去改别的地方,只改这个地方就可以了。我...原创 2019-07-26 15:14:08 · 1319 阅读 · 0 评论 -
PO模式 - common目录下的basepa_element.py
先来看看common有哪些东西basepage_element.py和basepage_elements.py 封装的是关键字驱动,一个是单一的页面元素,一个是多个页面元素的情况下config.py 用来判断环境contants.py 读取目录结构log.py 封装日志文件uploding.py 封装页面文件上传basepage(无关业务):关键字封装。等待、查找元素、点击、输入、...原创 2019-07-26 15:18:20 · 1208 阅读 · 0 评论 -
PO模式环境 - Outputs文件夹和PageLocators
Outputs文件夹下 创建log文件和screenshots文件 log文件用于存放产生的日志文件 screenshots存放元素失败后截图的.jpg图片PageLocators用于封装页面元素以百度为例创建一个baidu_page_locator.py代码如下:from selenium.webdriver.common.by import Byclass BaiduP...原创 2019-07-26 15:20:18 · 638 阅读 · 0 评论 -
PO模式环境 - PageObjects
PageObjects - 用于存放封装页面元素操作创建一个baidu_page.py文件from PO.PageLocators.baidu_page_locator import BaiduPageLocator as locfrom PO.Common.basepage import BasePageclass WebBaidu(BasePage): def baidu_...原创 2019-07-26 15:22:29 · 1013 阅读 · 0 评论 -
PO模式 - TestDatas存放测试数据
创建baidu_datas.py — 存放测试数据代码如下:#baidu - 输入搜索条件。 check - 断言,判断是否搜索成功baidu_data = {"baidu":"腾讯视频","check":"登录"}baidu_2_data = [ {"baidu":"腾讯视频","check":"登录"}, {"baidu":"爱奇艺视频","check":"登录...原创 2019-07-26 15:24:19 · 784 阅读 · 0 评论 -
PO模式 - TestCases测试用例,集成pytest
最后我们要把所有的元素定位、页面操作、测试数据,结合起来。这里我用的pytest单元测试框架,也可以用unittest来进行,但是unittest用来做web单元测试不太好用。首先:我们在TestData创建一个pytest.ini的配置文件(有无可无,看自己需要。),创建一个打标签的元素其次我们在TestCases里创建一个conftest.py的一个文件,用在于编写前置条件和后置条件...原创 2019-07-26 15:25:59 · 3159 阅读 · 2 评论