
python
文章平均质量分 59
我不管,我爱测试
文笔不好,看不懂或者不理解欢迎提问,看到评论必回复
展开
-
各个类型的内置函数(常用)
字符串的内置函数.split() —切割.replace() —替换.strip() —去除,默认去除头和尾的空格,可以去除指定的元素,但是中间的不考虑.lstrip() —去除开头字符、空白符.rstrip() —去除尾部字符、空白符.swapcase() —大小写替换.translate() — 方法根据参数table给出的表(包含 256 个字符)转换字符串的字...原创 2019-03-23 00:00:51 · 373 阅读 · 0 评论 -
异常定义
异常:程序运行的过程中出现问题错误,都可以称之为异常每个异常包含的信息:出错文件 行数 具体代码 错误类型 错误信息错误类型 :BaseException Exception —万能 缺点:逢错必抓 有内耗 优点:不会放过任何一个错误1.异常处理:当程序出现异常的时候 对异常进行处理try:#监控的代码块except:#写处理方法2.try:#监控的代码块...原创 2019-03-23 00:04:02 · 387 阅读 · 0 评论 -
路径处理和创建文件夹 OS
路径处理用的事内置函数 OS,我们只需要import OS就可以使用了 os.getcwd() ---获取当前路径,不会具体到某个模块名 os.path.realpath(__file__) ---获取到文件本身 os.path.basename(__file__) ---获取到文件名,不获取路径注:__file__是当前文件,可以改成自己想获取的文件,比如:s....原创 2019-03-23 13:22:17 · 406 阅读 · 0 评论 -
filea文件操作
文件的新建 读写 写入数据:open() —新建文件的操作 ,获取文件操作权限后,读、写操作一般用到3个内置变量 open(file,more=‘r’,encoding='utf-8):file:文件的路径 mode:对文件的操作,比如读、写 encoding =‘utf-8’ 指定编码操作文件后最好写个关闭 .close()对文件操作的有: r —只读...原创 2019-03-23 13:40:49 · 1737 阅读 · 0 评论 -
类与对象
面向对象编程通用:万物皆对象,对象都是会属于具体某个类的万物皆对象–对象肯定是属于某个类–>类可以产生对象class 类名: 类的方法:功能 类的属性:特征比如:手机有:像素、外观好看、能拍照、能打电话; 打电话、拍照是功能,像素,外观是特征简单来说:动词是方法,名词是特征简单的对象与函数:class Boy: def coding(self,a,b): #-...原创 2019-03-23 14:10:06 · 243 阅读 · 0 评论 -
创建excel和操作excel表格
首先我们先安装第三方库openpyxl,安装方法:pip install openpyxl创建一个Excel表格有两种方法:手动,代码创建。而我们讲的是如何代码创建: 创建Excel文件的模块: workbook 读写Excel文件的模块:load_workbook 注:python只支持.xlsx格式的Excel文件操作代码:from openpyxl import workbook...原创 2019-03-23 14:25:16 · 481 阅读 · 0 评论 -
python 配置文件
为什么要用配置文件?配置数据库参数/配置用例的运行模式/服务器地址python怎么创建配置文件?? 首先右键 --新建.cfg/.conf/.ini/.propertie 都可以 点击ok就好了 那怎么编写配置文件? 编写格式:section\option\value section - 区域/块 格式:[section名字]在section之下:option=value...原创 2019-03-23 14:39:32 · 1229 阅读 · 0 评论 -
python 日志
我们为啥要写日志? 记录程序代码,操作,我们要自己编写个自己的类,方便以后调用 用python自带的logging自带来写日志模块日志有:debug、info、warning、error、critical/fatal 级别:debug<info<warning<error<critical/fatal 日志它内部是个收集到输出的过程 啥都收集,但是输出只...原创 2019-03-23 14:54:59 · 155 阅读 · 0 评论 -
单元测试测试之unittest
首先我们先理解单元测试是谁做的 —>开发然后我们测试会写代码之后,我们也可以自己做单元测试那么单元测试是做什么? --> 对某个功能去测试单元测试测试什么? -->类里面的方法单元测试怎么测? -->创建对象 — 调用方法 —传参 -->通过传递多组数据来测试不同的情况单元测试的框架有 unittest 和 pytest学会了unittest才好学pyt...原创 2019-03-23 15:00:13 · 427 阅读 · 0 评论 -
DDT数据驱动
ddt是第三方库,pip install ddt安装一下ddt模块主要用到的有data、unpack@data装饰我们的方法 跟for循环一样 遍历元组每个数据 然后传递给被装饰的方法的一个参数,有几条数据 就执行几次用例@unpack是用来拆解data的数据首先我们要在类上面加个装饰器,@ddt其次在方法添加@data和@unpack装饰器代码:import unittestfr...原创 2019-03-23 17:17:52 · 1720 阅读 · 1 评论 -
python之mysql数据库读取
首先我们先安装读取mysql的第三方库:pip install pymysql安装成功后,我们穿件一个.py文件import pymysql我们先看看pymysql给我们提供了什么跳转到__init__界面然后跳转到这个界面,可以看到注释给我们说明各个参数的用途,再移动下去就可以看到mysql给我们提供了这么多个参数,有需要的自行查看上面的翻译哈,我们只需要host、user、pa...原创 2019-04-21 13:57:58 · 24814 阅读 · 5 评论 -
web自动化之xpath元素的定位
首先我们先打开谷歌的F12开发者模式,然后我们在开发者模式使用ctr+F,就会出现xpath,我们以百度举例假如我输入 //link[@rel=‘dns-prefetch’],那它下面有个1of8.。表示的是有这个属性有8个相同的地方xpath分为:绝对定位、相对定位、部分定位、层级定位1.绝对定位:严格按照路径和位置来定位元素 以/开头 父/子关系比如百度输入框,我们开发者模式的小...原创 2019-05-25 14:34:23 · 925 阅读 · 0 评论 -
python selenium - web自动化环境搭建
转载自:https://www.cnblogs.com/Simple-Small转载 2019-05-25 14:38:00 · 158 阅读 · 0 评论 -
web自动化之基础定位方式
简单的写写 id,class,name,text定位吧,xpath上片文章详细解答了在学习html页面的同学都知道,html里的标签属性有id、class、name、text等等吧?接下来我们就简单的讲讲如何定位id、class等#首先先导入包from selenium import webdriver#其次打开浏览器,访问百度driver = webdriver.Chrome()...原创 2019-05-29 16:41:12 · 634 阅读 · 2 评论 -
web自动化之三大等待
selenium里面给我们提供了三个等待方法: 1.强制等待sleep 2.隐性等待.implicitly_wait() 3.显性等待 WebDriverWait().until()/until_not (重点讲)1.强制等待 sleep导入impor time 在代码里面是time.sleep(*),这里的 * 是已秒来计算,假如你输入的1,那么就是等待1秒,输入0.5,那么就是强...原创 2019-05-29 16:52:52 · 912 阅读 · 0 评论 -
web自动化之浏览器窗口
在我们与浏览器交互当中,难免会遇到打开浏览器新窗口的存在,那么我们如何来进行新窗口的切换呢?方法有两种方式一: 打开新窗口,获取所有窗口 handles = driver.window_handles 切换新窗口 driver.switch_to.window(handles[-1]) #这里的-1只是它新窗口的下标标识具体代码如下:from selenium import web...原创 2019-05-29 16:58:29 · 679 阅读 · 0 评论 -
web自动化之iframe 页面的操作
前言:ifrname是啥?ifrname是嵌套到html里的另一个页面,点击对应的功能就会跳转到新的html里。一般遇到这种,我们代码不对ifrname页面进行操作的话,那我们定位是对它不起作用的。那我们怎么知道我们所在的元素在ifrname里呢?我们以QQ官网登录来做示范我们点击登录。然后定位一下登录里的“账号密码登录”,发现下面有ifrname。就足以证明它在ifrname页面里。或......原创 2019-05-31 22:44:04 · 1561 阅读 · 0 评论 -
web自动化之alert弹框
什么是alert弹框呢?F12定位不到元素的弹出框,一般称之为alert弹出框,因为它不是html元素。如下图: 这种F12定位不到针对这种我们怎么做呢?哎~ selenium里提供了switch_to.alert方法供我们使用。具体代码如下from selenium import webdriverfrom selenium.webdriver.support.wait impor...原创 2019-05-31 22:47:04 · 4015 阅读 · 0 评论 -
web自动化之鼠标悬停事件
前言:我们在操作浏览器的时候,都需要一些鼠标悬停才能显示的下拉框或者选择下拉框的内容。鼠标操作类是 ActionChains鼠标事件有: 1. 悬浮 - 用的最多最多 move_to_element 2. 右键 context_click 3. 点击 click 4. 双击 double_click 5. 拖拽 drag_and_drop 6. 滚动 — js 7...原创 2019-05-31 22:51:02 · 6028 阅读 · 0 评论 -
web自动化之按键操作
前言:在我们浏览器有很多键盘操作。比如 回车啊空格啊,F1 F12啥的。针对键盘操作我们selenium里剔红了Keys方法只需要导入一下就可以了。我们看下Keys的源码,看看它给我们提供了什么from selenium.webdriver.common.keys import Keys一看它给我们提供了这么多键盘事件的方法。那我们怎么用呢?这里我用回车键来示范,后面你们要用到的,自行...原创 2019-06-01 15:10:22 · 889 阅读 · 0 评论 -
web自动化之js日期控件
前言:我们为什么要用到js语言来操控日期控件?因为有些选择日期不支持send_keys()代码里输入,所以我们就用js来操作。注:基本的js语句请自行百度搜索我们打开F12,切换到Console页面,这个页面是用来提供我们写JS语句的,比如我们通过js语句来获取到“出发日期”的属性,我们看到日期里有 readonly 属性。我们消除它,我们就能输入了我们a.readOnly=false...原创 2019-06-01 15:13:28 · 1996 阅读 · 0 评论 -
web自动化之js滚动条
前言:我们为什么要操作滚动条?,因为大部分系统在元素操作是,如果元素不在可见区域。随着操作会自动到可见区域比如我们搜索谷歌。在这页面的元素都是可见的(图1)。但是下面的谷歌_百度百科(图2)我们得下滑到下面才能见到谷歌_百度百科,那我们怎么办?使用driver.execute_script(***).execute_script(***)有4个用法 1.driver.execute_s...原创 2019-06-01 15:16:29 · 1536 阅读 · 0 评论 -
web自动化之上传文件
前言:我们什么时候用到上传文件,上传文件怎么操作?那我们的selenium能不能对上传文件进行操作?解答:1.当我们web自动化需要上传文件来进行自动化的时候,就需要用到2.我们要操作上传文件窗口需要用到pypiwin32模块,这个模块是操控windows弹出框而准备的3.不能,因为上传文件窗口是windows弹出框。我们selenium只是对html页面做操作,不能针对windows端来操...原创 2019-06-01 15:17:13 · 1823 阅读 · 0 评论 -
web自动化之要用到框架导入包总结
1.启动浏览器 需要 from selenium import webdriver 这个必不可少2.三大等待:2.1 强制等待sleep:import time 或者 from time import sleep2.2 隐性等待implicitly_wait(),只需要driver.implicitly_wait()2.3 显性等待WebDriverWait().until()/unt...原创 2019-06-01 15:19:39 · 1050 阅读 · 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 评论 -
日志封装
创建一个log.py文件'''日志模块'''import loggingimport timefrom PO.Common.contants import Openclass MyLog (): def __init__(self, logging_name=''): self.logging = logging_name # 日志收集名字,默认为空 ...原创 2019-07-26 15:15:07 · 568 阅读 · 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 评论 -
allure测试报告+Jenkins集成
前提:得装了jdk1.8allure测试报告的样子是这样的,它能显示你运行了几次,然后每次运行有多少次成功多少次失败,之前的和现在的下载地址:链接:https://pan.baidu.com/s/1bG0a0DYxBoUpHtWM3M4n_g提取码:qtv8将文件减压,然后把bin文件目录下的allure.bat放到配置环境变量里然后cmd 运行allure 命令,显示这样算成功...原创 2019-07-26 16:27:41 · 8126 阅读 · 1 评论