python接口自动化参数化_python接口自动化-参数化
原文地址https://www.cnblogs.com/yoyoketang/p/6891710.html
python接口自动化 -参数关联(一)https://www.cnblogs.com/111testing/p/9612496.html
python接口自动化-token参数关联登录(二)https://www.cnblogs.com/111testing/p/9612786.html
前言
前面一篇实现了参数的关联,那种只是记流水账的完成功能,不便于维护,也没什么可读性,接下来这篇可以把每一个动作写成一个函数,这样更方便了。
参数化的思维只需记住一点:不要写死
(由于博客园登录机制变了,登录全部用cookie,不用账号和密码登录了)
一、登录函数
1.s参数是session的一个实例类,先放这里,方便写后面代码
2.登录函数传三个参数,s是需要调用前面的session类,所以必传,可以传个登录的url,然后payload是账号和密码
二、保存草稿
1.编辑内容的标题title和正文body_data参数化了,这样后面可以方便传不同值
2.这里返回了获取到新的url地址,因为后面的postid参数需要在这里提取
三、提取postid
1.这里用正则表达式提取url里面的postid
四、删除草稿
1.传个url和postid就可以了
五、参考代码:
#coding:utf-8
importrequestsdeflogin(s, url, payload):'''登录'''
#先打开登录首页,获取部分cookie
url = "https://passport.cnblogs.com/user/signin"headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0"}#get方法其它加个ser-Agent就可以了
s=requests.session()
r= s.get(url, headers=headers,verify=False)prints.cookies#添加登录需要的两个cookie
c =requests.cookies.RequestsCookieJar()
c.set('.CNBlogsCookie', '这里是抓到的') #填上面抓包内容
c.set('.Cnblogs.AspNetCore.Cookies','这里是抓到的') #填上面抓包内容
c.set('AlwaysCreateItemsAsActive',"True")
c.set('AdminCookieAlwaysExpandAdvanced',"True")
s.cookies.update(c)prints.cookiesdefsave_box(s, url2, title, body_data):'''# 获取报存之后url地址'''body= {"__VIEWSTATE": "","__VIEWSTATEGENERATOR":"FE27D343","Editor$Edit$txbTitle":"这是标题","Editor$Edit$EditorBody":"
这里正文:http://www.cnblogs.com/yoyoketang/
","Editor$Edit$Advanced$ckbPublished":"on","Editor$Edit$Advanced$chkDisplayHomePage":"on","Editor$Edit$Advanced$chkComments":"on","Editor$Edit$Advanced$chkMainSyndication":"on","Editor$Edit$Advanced$txbEntryName":"","Editor$Edit$Advanced$txbExcerpt":"","Editor$Edit$Advanced$tbEnryPassword":"","Editor$Edit$lkbDraft":"存为草稿",
}
r2= s.post(url2, data=body, verify=False)printr2.urlreturnr2.urldefget_postid(u):'''正则提取postid'''
importre
postid= re.findall(r"postid=(.+?)&", u)print postid #这里是list
if len(postid) < 1:return ''
else:returnpostid[0]defdelete_box(s,url3, postid):'''删除草稿箱'''json3= {"postId": postid}
r3= s.post(url3, json=json3, verify=False)printr3.json()if __name__ == "__main__":
url= "https://passport.cnblogs.com/user/signin"payload={"input1": "xxx","input2": "xxx","remember": True
}
s=requests.session()
login(s, url, payload,)
url2= "https://i.cnblogs.com/EditPosts.aspx?opt=1"u= save_box(s, url2, "标题", "正文内容")
postid=get_postid(u)
url3= "https://i.cnblogs.com/post/delete"delete_box(s, url3, postid)
对python接口自动化有兴趣的,可以加python接口自动化QQ群:226296743
也可以关注下我的个人公众号:
---------------------------------python接口自动化已出书-------------------------
python接口自动化参数化_python接口自动化-参数化相关推荐
- python网站设计中接口的作用_python接口自动化(三)--如何设计接口测试用例(详解)...
简介 上篇我们已经介绍了什么是接口测试和接口测试的意义.在开始接口测试之前,我们来想一下,如何进行接口测试的准备工作.或者说,接口测试的流程是什么?有些人就很好奇,接口测试要流程干嘛?不就是拿着接口文 ...
- python绕过验证码登录_python接口自动化(十三)--cookie绕过验证码登录(详解)...
简介 有些登录的接口会有验证码:短信验证码,图形验证码等,这种登录的话验证码参数可以从后台获取的(或者查数据库最直接).获取不到也没关系,可以通过添加cookie的方式绕过验证码.(注意:并不是所有的 ...
- python接口自动化 一个变量 其他接口要用_python接口自动化(二)--什么是接口测试、为什么要做接口测试(详解)...
简介 上一篇和大家一起科普扫盲接口后,知道什么是接口,接口类型等,对其有了大致了解之后,我们就回到主题-接口测试. 什么是接口测试 接口测试是测试系统组件间接口的一种测试.接口测试主要用于检测外部系统 ...
- python自动化控制_python用于自动化控制编程
Python自动化是做什么的 软件测试里面有Python自动化测试这个课程吗? 在人工智能+大数据的飞速发展的大环境下,Python开发语言日渐火爆,Python自动化测试也将逐渐取代传统的软件测试, ...
- python自动化测试教程百度云盘_Python接口自动化测试框架实战视频教程百度云下载...
主流的Fiddler.Requests.Unittest.Mock等接口测试工具/框架应用 进阶自动化框架设计开发 课程目录: 1-1 接口自动化测试从基础到框架-导学 1-2 接口基础知识回顾 1- ...
- python调用第三方接口获取数据_python 接口实现 供第三方调用的例子
python 接口实现 供第三方调用的例子 实验环境 1.环境问题 python 2.7 以上自带的pyunit bottle 作为一个python的简易服务器 在python安装目录 打开命令窗口( ...
- python mock接口怎么用_python接口自动化测试 - mock模块基本使用介绍
mock简介 py3已将mock集成到unittest库中 为的就是更好的进行单元测试 简单理解,模拟接口返回参数 通俗易懂,直接修改接口返回参数的值 mock作用 解决依赖问题,达到解耦作用 当我们 ...
- python接口自动化参数化_python接口自动化6-参数化关联
前言 接口中我们经常需要用到参数关联,比如,登录token,需要传给后面的参数使用,又比如要查看某个商品需要将商品的id传入下一个接口使用. 等等,所以我们必要学会 re 正则获取,或者返回json获 ...
- python数据接口获取数据_python UI自动化实战记录二:请求接口数据并提取数据
该部分记录如何获取预期结果-接口响应数据,分成两步: 1 获取数据源接口数据 2 提取后续页面对比中要用到的数据 并且为了便于后续调用,将接口相关的都封装到ProjectApi类中. 新建python ...
最新文章
- 爱好历史的程序员,不容错过!
- 这老哥把GPU当暖气用,省钱了
- 3D 投影矩阵学习1
- spec linux,linux – 在RPM包中SPEC文件中1%{?dist}的含义是什么?
- Docker框架的使用系列教程(三)
- sqlserve生成随机数
- QT应用SQL数据库,简单全面的应用,增删改查。
- Java之JDBC连接池详解
- 图文教程使用一套键鼠控制两台电脑
- 按键精灵定位坐标循环_按键精灵的控制命令居然恐怖到了这种程度
- Edge浏览器驱动更新
- jQuery 前端操作
- 幕布笔记按字母顺序导出(Python+Opml)
- 手机流量卡代理第一次做,要做好哪些准备?
- 常见电路面试题20道
- 植物大战僵尸数据修改总结
- ZigBee 3.0实战教程-Silicon Labs EFR32+EmberZnet:学习教程目录
- 阿里CEO张勇认为程序员不应限制年龄
- 环境隔离(virtualenv pyenv)
- 事件地图展示App策划书_20170822