自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 资源 (1)
  • 收藏
  • 关注

原创 python3+selenium入门14-上传下载文件

上传文件一种方式是通过定位input标签,然后使用send_keys()方法传入需要上传文件的路径。另一种是使用第三方插件去上传文件。下面看下imput标签的方式。工具可以自己查下。<!DOCTYPE html><html><head> </head><body><form action="demo_form.ph...

2018-07-31 17:02:01 1275 3

原创 python3+selenium入门13-操作cookie

可以把cookie理解为自己账户的身份证。因为http协议是无状态的,上一个请求和下一个请求没有关系。但是有时需要有关联。比如登录之后,才能进行操作这样的设置。这个就是cookie在起作用。登录成功时,服务器会给浏览器一个cookie,浏览器会解析存在本地。然后同一个网站,下一次请求时就会把这个cookie带上,告诉服务器是哪个用户在操作。在关闭浏览器时cookie有效期结束。WebDrive...

2018-07-30 12:20:19 677

原创 python3+selenium入门12-警告框处理

在WebDriver中要处理JS生成的alert、confirm以及prompt,需要使用到switch_to_alert()定位到alert/confirm/prompt,然后再使用text、accept()、dissmiss()、send_keys()等方法进行操作。text:获得alert/confirm/prompt中的文本信息accept():接受警告框dissmiss():...

2018-07-30 10:26:57 535

原创 python3+selenium入门11-窗口切换

在打开新的浏览器窗口时,如果要定位新窗口的元素,需要先切换到这个新打开的窗口中,才能定位到该窗口下的元素。current_window_handle:获取当前句柄。可以把句柄理解成窗口的身份证window_handles:获取所有打开窗口的句柄from selenium import webdriverimport timedr = webdriver.Chrome()dr....

2018-07-27 17:53:50 540 2

原创 python3+selenium入门10-表单切换

当元素在ifarm或farm中时,需要先进入到表单中,然后才能定位元素进行操作。直接对元素定位。会提示元素无法找到。<!DOCTYPE html><html><head></head><body><iframe id = 'if' src="https://www.baidu.com" width="800&q

2018-07-27 16:30:27 630

原创 python3+selenium入门09-键盘事件

Keys类提供了键盘上几乎所有按键的方法。通过send_keys()方法不仅可以用来模拟键盘输入,还可以用它来模拟键盘上的按键。包括组合键,比如Ctrl+a等需要导入Keys类from selenium.webdriver.common.keys import Keysfrom selenium.webdriver.common.keys import Keysfrom se...

2018-07-27 15:37:11 1072 3

原创 python3+selenium入门08-鼠标事件

使用click()可以模拟鼠标的左键点击事件,现在的web页面中有很多其他的鼠标交互方式,比如鼠标右击、双击、悬停、鼠标拖放等功能。在WebDriver中,将这些关于鼠标操作的方法封装在ActionChains类。导入ActionChains类from selenium.webdriver.common.action_chains import ActionChains Acti...

2018-07-27 14:56:06 731

原创 Git学习笔记07-删除文件

在Git中,删除也是一种修改。先新建一个文件,添加并提交。然后删除下看看。一般删除直接从工作区把文件删了,或者使用rm命令这是使用git status查看状态,会告诉我们删了哪个文件这个时候有两个选择,一个是确定要删除,一个是删除错了要恢复。先看恢复,使用 git checkout -- file就行了git checkout其实使用版本库中的版本替换工作区的版本,...

2018-07-27 11:47:04 133

原创 Git学习笔记06-版本回退

在实际中,向版本库提交多次后,几千行代码肯定不记得每次都改了什么,可以使用git log来查看提交日志。也就是git commit -m 后面填写的这部分内容也可以使用git log --pretty=oneline让日志显示的简略点,--后面没空格的。黄色的很长的这一段是commit id也就是版本号在Git中,使用HEAD表示当前版本,上一个版本就是HEAD^,再上一个就是...

2018-07-27 11:08:25 160

原创 python3+selenium入门07-元素等待

在使用selenium进行操作时,有时候在定位元素时会报错。这可能是因为元素还没有来得及加载导致的。可以等过元素等待,等待元素出现。有强制等待,显式等待,隐式等待。 强制等待就是之前文章中的time.sleep(),只是为了看到界面操作效果才那样设置的。这个是不管找没找到都会等待的。基本代码中不会用这个。  显式等待WebDriverWait类是WebDriver提供的...

2018-07-26 20:51:29 1093

原创 python3+selenium入门06-浏览器操作

WebDriver主要提供元素操作的方法,但也提供了一些关于浏览器操作的方法,比如设置浏览器大小,浏览器前进,后退,刷新等 设置浏览器大小有时候需要设置浏览器大小,比如访问收集网页,设置浏览器大小跟手机一样大的尺寸,比如(480*800)from selenium import webdriverdr = webdriver.Chrome()dr.set_window_siz...

2018-07-26 18:13:52 519

原创 python3+selenium入门05-元素操作及常用方法

学习了元素定位之后,来看一些元素的操作,还有一些常用的方法clear()清空输入框内容click()点击send_keys()键盘输入import timefrom selenium import webdriverdr = webdriver.Chrome()dr.get('https://www.baidu.com')#打开百度st = dr.find_element...

2018-07-26 18:01:48 532

原创 Git学习笔记05-撤销修改

使用 git checkout -- file可以撤销工作区的修改 一种是修改后还没有放到暂存区,撤销修改回到和版本库一模一样的状态lesson.txt文件已经提交到版本库了,内容如图。修改一下,保存后。git diff对比看下然后git checkout -- lesson.txt可以看到内容变回来了。 另一种是已经提交到了暂存区又修改了,撤销修改...

2018-07-26 16:49:16 144

原创 Git学习笔记04-管理修改

Git跟踪并管理的是修改,而非文件。新增文件,修改一行,删除一点,都算是修改。在.git工作区新增一个文件,test.txt,输入test git 。。。然后git add add之后修改test.txt内容,加个123 然后git commit使用git diff HEAD -- test.txt对比工作区和分支内容 --后面一定要有个空格可以看到第二次修改的...

2018-07-26 15:52:18 143

原创 Git学习笔记03-工作区和暂存区

Git和其他版本控制工具不同的地方就是有暂存区的概念工作区(Working Directory)就是在电脑界面上能够看到的目录版本库(Repository)工作区下面有个一个.git文件夹,也就是上一篇文章git init之后生成的文件夹。这个就是版本库。Git的版本库里存了很多东西,其中最重要的称为stage的暂存区,还有GIt为我们自动创建的第一个分支master,以及指向ma...

2018-07-26 13:19:58 216

原创 Git学习笔记02-创建版本库

版本库就是一个目录,这个目录里面的所有文件都会被Git管理,每个文件的修改,删除都能追踪。以便在某个时刻追踪历史记录,或者还原路径切换,查看文件命令和linux差不多,cd 文件路径  ls查看路径下文件。pwd查看当前路径首先使用 git init 在当前目录下创建git可以管理的仓库,或者git init 路径  在指定路径下创建。创建成功后会路径或者文件下会多出来一个.git目录,用...

2018-07-25 18:23:51 171

原创 Git学习笔记01-安装Git

学习的资料来自廖雪峰官方网站的Git教程,菜鸟教程的Git教程Git是一个分布式版本控制工具,在windows上使用Git可以直接从官网下载,然后默认选项安装即可。安装完成后,在开始菜单中找到找到Git —>Git Bash。打开后弹出一个类似命令行的窗口,证明Git安装成功Git配置Git提供一个叫做git config 工具,专门用来配置或读取相应的工作环境变量,这些...

2018-07-25 17:45:49 172

原创 Python3学习笔记30-datetime模块

datetime是Python处理日期和时间的标准库 获取当前的日期和时间from datetime import datetimenow = datetime.now()print(now)print(type(now))from datetime import datetime 第一个datetime是模块,第二个datetime是该模块下的类。这个类下面的.n...

2018-07-24 17:42:52 345

原创 python3+selenium入门04-元素定位

我们在对浏览界面做操作时,比如点击按钮,搜索框输入内容。都需要把鼠标挪过去,然后再点击,或者输入内容。在selenium操作时也是一样的。需要先对元素进行定位,然后才能进行操作。可以借助浏览器的开发者工具(浏览器F12打开)来查看网页对应的html代码。然后进行定位。可以稍微学习HTML基础,更容易理解。定位方式有八种,这八种各有两个方法,一个是find_element_by_方式,这是定位单...

2018-07-19 17:55:42 963

原创 python3+selenium入门03-操作谷歌浏览器

操作谷歌浏览器同样也需要下载相应的driver插件,官网下载。也可以从我的网盘下载,不过可能不是最新的,网盘地址。打开谷歌浏览器的操作和火狐的差不过。from selenium import webdriverdr = webdriver.Chrome()dr.maximize_window()dr.get('https://www.baidu.com')dr.close()we...

2018-07-19 15:03:37 754

原创 python3+selenium入门02-操作火狐浏览器

使用selenium打开浏览器的时候,需要先去selenium官网下载一个对应浏览器的的driver插件。selenium下载。官网在国外可能打不开。或者可以从我网盘下载,但可能不是最新的网盘链接。将下载好的文件解压出来,将.exe文件放到python3的安装目录下即可。from selenium import webdriverdr = webdriver.Firefox()dr.ge...

2018-07-19 14:55:19 539

原创 Python3学习笔记29-发送邮件

email模块用来构造邮件,smtplib模块用来发送邮件。以QQ邮箱为例想要在代码中使用QQ邮箱发送邮件,需要先在QQ邮箱-设置-账户中,开启SMTP服务,然后生成授权码。在进行验证账号时,用生成的授权码替换密码发送纯文字的邮件,需要使用MIMEText()#!/usr/bin/python3import smtplibfrom email.mime.te...

2018-07-19 14:16:58 982

原创 python3+selenium入门01-环境搭建

作为一个测试,在最近两年应该有明显的感觉。那就是工作变的难找,要求变的高了,自动化测试,性能测试等。没有自动化测试能力,只会点点点工作难找不说,工资也不高。所以还是要学习一些技术。首先要学习一门编程语言。然后自动化入门可以学习selenium。有java基础可以使用java。没有语言基础的推荐学习python3。网上的教程很多,推荐廖雪峰的python教程。selenium的学习更多是个入门,...

2018-07-19 12:09:05 527

原创 python3+requests库框架设计06-测试脚本

在项目下新建TestCase文件夹,然后新建.py文件在文件中写关于接口具体的测试脚本,一般我喜欢按照模块来分,一个模块一个.py文件,建议以test开头命名文件把配置文件改成这样在TestCase文件夹下新建test_weathere.py文件,输入以下代码import unittestfrom Logs.log import log1from Common.Base_te...

2018-07-19 10:13:40 548

原创 python3+requests库框架设计08-发送邮件

使用python3的email模块和smtplib模块可以实现发送邮件的动能。email模块用来生成email,smtplib模块用来发送邮件,接下来看如何在生成测试报告之后,并将报告放在邮件附件中并发送给项目组的人,在Common文件夹下新建my_email.py文件,项目结构如下。#!/usr/bin/python3import smtplibfrom email.mime.t...

2018-07-18 18:06:30 1045

原创 python3+requests库框架设计07-生成测试报告

使用HTMLTestRunner可以生成测试报告。HTMLTestRunner是unittest模块下的一个拓展,原生的生成报告样式比较丑,GitHub上有大佬优化过后的版本:GitHub地址。下载之后解压应该是这样的我们需要使用的是HTMLTestRunnerCN.py和EN.py 这两个。一个生成的是中文报告,一个生成的是英文报告。想用哪个版本的就把对应版本的.py文件复制到pytho...

2018-07-18 10:57:19 727

原创 python3+requests库框架设计05-unittest单元测试框架

unittest单元测试框架,主要由四部分组成:测试固件、测试用例、测试套件、测试执行器测试固件(test fixture)测试固件有两部分,执行测试前的准备部分setUp(),测试执行完后的清扫部分tearDown() 测试用例(test case)测试用例中,包含测试固件,具体的测试代码的函数。测试固件可以不写,但是至少要有一个以test开头的函数。unittest会自...

2018-07-17 20:27:15 445

原创 python3+requests库框架设计04-配置文件

python3配置文件的增删改查等操作可以使用内置的ConfigParser模块,可以自行百度学习,也可以看 Python3学习笔记27-ConfigParser模块配置文件一般存放着环境信息,比如url和一些测试过程中后续需要用到的字段。还有测试中需要导入,导出的一些文件。在项目下新建Config文件夹,文件夹下新建config.ini文件。项目结构如下实际项目接口测试中,接口url...

2018-07-17 20:19:15 545 2

原创 python3+requests库框架设计03-请求重新封装

在完成了日志类封装之后,那我们就要对测试基类进行实现,在其中对一些请求再次封装,在项目下新建一个Common文件夹,在文件夹下新建Base_test.py文件,项目结构如下。具体怎么封装还是要看被测接口需要什么,只能提供一个大致思路,我项目能用的封装,你项目并不一定能用首先是get请求,第一个肯定是url,实际项目api接口都需要请求字段,那肯定要params参数,基本需要使用请求头来...

2018-07-17 19:19:14 4448 10

原创 python3+requests库框架设计02-封装日志类

首先我们先来实现日志的功能,日志可以使用python3自带logging模块,不会的可以百度一下相关文章,也可以看我另外一篇文章Python3学习笔记24-logging模块在封装日志类前,我们需要想一下,我们需要实现怎样的日志功能,需要把日志放到项目下指定路径,文件名为日期.log,需要把所有日志输出到一个文件中,需要把报错的日志单独输出到另一个文件,info和error需要不同的日志格式...

2018-07-17 18:22:22 930

原创 python3+requests库框架设计01-自动化测试框架需要什么?

什么是自动化测试框架关于自动化测试框架的定义有很多,在我大致理解下就是把能实现不同功能的软件组合在一起,实现特定的目的,这就是一个简单的自动化测试框架。接口自动化测试框架核心无非是选择 一个用来编写脚本的语言,一个用来模仿http请求的http库,管理脚本的执行工具,选择python,http库可以用requests,脚本管理工具可以用unittest单元测试框架。选择java的话,htt...

2018-07-17 17:42:36 2154 4

原创 requests库入门14-Cookie

因为http是没有状态的协议,上一个请求和下一个请求是没有关联。但是现实中又需要有关联,比如一个页面某个操作需要登陆之后才能进行,没有登陆就提示你登陆。为了实现这样的效果,所以出现了Cookie和Session这两种机制。这里的Session是指http的一种机制,和requests的会话对象是两个东西。Session机制不太清楚就不写了。Cookie机制原理当浏览器第一次发送请求...

2018-07-17 16:51:14 470 3

原创 requests库入门13-会话对象

会话对象可以在跨请求保持某些参数,会话对象有requests api的大部分方法,我理解会话对象就是一个资源共享池使用requests.Session()可以创建会话对象的实例还是以之前GitHub的接口为例,之前文章在调用接口的时候,每次都需要做一个基本认证。那现在直接把这个基本认证放到会话对象里面,然后通过会话对象去调用接口。import requestss = request...

2018-07-17 13:54:58 394

原创 requests库入门12-文件上传和下载

因为找不到可以演示上传接口,所以只能纯代码了文件上传上传文件是在请求中使用files参数,files需要指向一个dict,然后dict里面的键是接口中对应文件名的字段,而值就是打开这个文件读取到内存的内容以上图中这个字段举例path = 文件路径file = {'templateFile':open(path.'rb')}一般上传文件是post请求r = re...

2018-07-17 12:43:35 3391

原创 requests库入门11-重定向和请求历史

默认情况下,除了head请求,requests会自动处理重定向重定向就是会把url重新指定到另一个。比如github,使用http会自动重定向到https。一些公司也会使用网关啥的做重定向。r = requests.get('http://github.com')print(r.url)print(r.status_code)print(r.history)可以看出url中...

2018-07-17 12:07:16 797 1

原创 requests库入门10-超时,错误与异常

在实际发布到生产上的接口测试代码,都会加上超时的设置,当服务器超过一定时间没有响应,会报出超时异常。因为requests会自动等待响应。如果不加上超时的设置,可能脚本会一直卡在那里。。超时设置在请求中使用timeout参数requests.get('http:github.com',timeout=0.01)因为github是国外网站,0.01秒完成应答几乎不可能,所以会报提示...

2018-07-17 11:41:27 1213

原创 requests库入门09-OAUTH认证

实际登陆中,认证用到的token会变的,不过可以在GIthub设置一个私人token。如图,登录GIthub,然后用户下面选择Settings/Developer settings/Personal access tokens,点击Generate new token,然后随便输个描述,勾选user这块,然后生成token。这个token可以理解为身份令牌。将生成的token保存下来。...

2018-07-16 20:34:55 374

原创 requests库入门08-delete请求

还是使用GitHub的接口,之前我们新增了邮箱,这次使用delete请求来删除邮箱,接口文档地址import requeststest_url = 'https://api.github.com'def get_url(url): return '/'.join([test_url,url])email = '24xxxxx48@qq.com'def delete...

2018-07-16 17:39:34 2898

原创 requests库入门07-patch请求

使用data参数提交设置邮件能见度,这个接口用来设置邮件是公共可见,还是私有的import requeststest_url = 'https://api.github.com'def get_url(url): return '/'.join([test_url,url])payloda = {'email':'kxxxu@163.com', ...

2018-07-16 17:24:18 2327

原创 requests库入门06-post请求

使用post请求时,可以使用不同的编码格式对实体进行提交。常用的有表单方式和json格式headers: { "Content-Type": "application/json", }请求头中content-type用来设置实体的编码格式json格式示例相应的接口文档:GitHub邮箱接口文档先登录GitHub,然后右上角用户下拉框中选择settings,然后选...

2018-07-16 17:22:35 851 4

HTMLTestRunner

unittest模块下的一个拓展,用来生成自动化测试报告。

2018-07-20

空空如也

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

TA关注的人

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