原文地址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接口自动化-参数化相关推荐

  1. python网站设计中接口的作用_python接口自动化(三)--如何设计接口测试用例(详解)...

    简介 上篇我们已经介绍了什么是接口测试和接口测试的意义.在开始接口测试之前,我们来想一下,如何进行接口测试的准备工作.或者说,接口测试的流程是什么?有些人就很好奇,接口测试要流程干嘛?不就是拿着接口文 ...

  2. python绕过验证码登录_python接口自动化(十三)--cookie绕过验证码登录(详解)...

    简介 有些登录的接口会有验证码:短信验证码,图形验证码等,这种登录的话验证码参数可以从后台获取的(或者查数据库最直接).获取不到也没关系,可以通过添加cookie的方式绕过验证码.(注意:并不是所有的 ...

  3. python接口自动化 一个变量 其他接口要用_python接口自动化(二)--什么是接口测试、为什么要做接口测试(详解)...

    简介 上一篇和大家一起科普扫盲接口后,知道什么是接口,接口类型等,对其有了大致了解之后,我们就回到主题-接口测试. 什么是接口测试 接口测试是测试系统组件间接口的一种测试.接口测试主要用于检测外部系统 ...

  4. python自动化控制_python用于自动化控制编程

    Python自动化是做什么的 软件测试里面有Python自动化测试这个课程吗? 在人工智能+大数据的飞速发展的大环境下,Python开发语言日渐火爆,Python自动化测试也将逐渐取代传统的软件测试, ...

  5. python自动化测试教程百度云盘_Python接口自动化测试框架实战视频教程百度云下载...

    主流的Fiddler.Requests.Unittest.Mock等接口测试工具/框架应用 进阶自动化框架设计开发 课程目录: 1-1 接口自动化测试从基础到框架-导学 1-2 接口基础知识回顾 1- ...

  6. python调用第三方接口获取数据_python 接口实现 供第三方调用的例子

    python 接口实现 供第三方调用的例子 实验环境 1.环境问题 python 2.7 以上自带的pyunit bottle 作为一个python的简易服务器 在python安装目录 打开命令窗口( ...

  7. python mock接口怎么用_python接口自动化测试 - mock模块基本使用介绍

    mock简介 py3已将mock集成到unittest库中 为的就是更好的进行单元测试 简单理解,模拟接口返回参数 通俗易懂,直接修改接口返回参数的值 mock作用 解决依赖问题,达到解耦作用 当我们 ...

  8. python接口自动化参数化_python接口自动化6-参数化关联

    前言 接口中我们经常需要用到参数关联,比如,登录token,需要传给后面的参数使用,又比如要查看某个商品需要将商品的id传入下一个接口使用. 等等,所以我们必要学会 re 正则获取,或者返回json获 ...

  9. python数据接口获取数据_python UI自动化实战记录二:请求接口数据并提取数据

    该部分记录如何获取预期结果-接口响应数据,分成两步: 1 获取数据源接口数据 2 提取后续页面对比中要用到的数据 并且为了便于后续调用,将接口相关的都封装到ProjectApi类中. 新建python ...

最新文章

  1. 爱好历史的程序员,不容错过!
  2. 这老哥把GPU当暖气用,省钱了
  3. 3D 投影矩阵学习1
  4. spec linux,linux – 在RPM包中SPEC文件中1%{?dist}的含义是什么?
  5. Docker框架的使用系列教程(三)
  6. sqlserve生成随机数
  7. QT应用SQL数据库,简单全面的应用,增删改查。
  8. Java之JDBC连接池详解
  9. 图文教程使用一套键鼠控制两台电脑
  10. 按键精灵定位坐标循环_按键精灵的控制命令居然恐怖到了这种程度
  11. Edge浏览器驱动更新
  12. jQuery 前端操作
  13. 幕布笔记按字母顺序导出(Python+Opml)
  14. 手机流量卡代理第一次做,要做好哪些准备?
  15. 常见电路面试题20道
  16. 植物大战僵尸数据修改总结
  17. ZigBee 3.0实战教程-Silicon Labs EFR32+EmberZnet:学习教程目录
  18. 阿里CEO张勇认为程序员不应限制年龄
  19. 环境隔离(virtualenv pyenv)
  20. 事件地图展示App策划书_20170822

热门文章

  1. 修ecshop品牌筛选以LOGO图片形式显示
  2. 自定义数字格式字符串_部分分隔符和条件格式
  3. 在XP下,如何使指定的用户在登录界面可见
  4. UVA11577 Letter Frequency【文本】
  5. 欢迎使用CSDN-markdown编辑器【转载】
  6. POJ3262 Protecting the Flowers【贪心】
  7. 51Nod-1101 换零钱【0/1背包+DP】
  8. NUC1776 Tiling Up Blocks【二维最长上升子序列+DP】
  9. Vijos P1127 级数求和【数列】
  10. Spark —— RDD、DataFrame 与 Dataset