博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用python做自己主动化測试--对server端的自己主动化測试(3)-很多其它http client实例...
阅读量:5819 次
发布时间:2019-06-18

本文共 1886 字,大约阅读时间需要 6 分钟。

上一篇中仅仅是实现了一个非常easy的http client功能,request还提供了keep alive, SSL, 多文件上传,cookie 管理功能,http requests头管理等丰富的功能,仅仅要你浏览器实现的功能,requests里面都支持。

#!/usr/bin/env python#coding=utf-8import requestsdef login_douban(username, passwd):    post_data={'source':'index_nav','form_email':username,'form_password':passwd}    request_headers={"User-Agent":"Mozilla/5.0 (Windows NT 6.1; rv:30.0) Gecko/20100101 Firefox/30.0"}    response=requests.post("http://www.douban.com/accounts/login", data=post_data,headers=request_headers)    if u"小王子" in response.text:        print "Login successful"        return  response    else:        print "Login failed"        print response.text        return  Falsedef say_something(login_cookie):    post_data={'ck':'ynNl','rev_title':u'发福利','rev_text':u'楼主是标题党','rev_submit':u'好了,发言'}    response=requests.post("http://www.douban.com/group/beijing/new_topic", data=post_data,cookies=login_cookie)    if response.url=="http://www.douban.com/group/beijing/":        print "post new content successfully"        return  True    else:        print "Post content fail"        return  Falselogin_response=login_douban(your_usename,your_passwd)say_something(login_response.cookies)
request_headers={"User-Agent":"Mozilla/5.0 (Windows NT 6.1; rv:30.0) Gecko/20100101 Firefox/30.0"}, 这一行的目的是为了模拟这个请求是FireFox发出来的,非常多站点为了屏蔽爬虫,会通过User-Agent这个字段来屏蔽,当然如今大型站点应该会用更高级的手段来屏蔽爬虫,假设不设置这个User-Agent, requests发出去的请求,User-Agent的值是python-requests/2.3.0 CPython/2.7.3 Windows/7\r\n。

say_something这个函数没測试了,刚才我频繁的调试,豆瓣要我输入登陆验证码了,有问题这里留言,我过段时间在调试。

关于cookie, session管理这块,假设是在同一个函数里面,request自己主动管理了session,不须要额外的处理,

session = requests.Session()session.post("http://www.douban.com/accounts/login", data=post_data,headers=request_headers)session.post("http://www.douban.com/group/beijing/new_topic", data=post_data)

这样就能够发帖成功。

看到这里大家一定会想到selenium,是不是和requests一样的? requests更擅长于无UI接口測试,selenium更擅长于有UI的web測试。

转载地址:http://akwdx.baihongyu.com/

你可能感兴趣的文章
开源 免费 java CMS - FreeCMS1.9 移动APP生成栏目列表数据
查看>>
虚拟机新增加硬盘,不用重启读到新加的硬盘
查看>>
Java IO流详尽解析
查看>>
邮件服务系列之四基于虚拟用户的虚拟域的邮件系统(安装courier-authlib以及部分配置方法)...
查看>>
Linux VSFTP服务器
查看>>
DHCP中继数据包互联网周游记
查看>>
Squid 反向代理服务器配置
查看>>
Java I/O操作
查看>>
Tomcat性能调优
查看>>
项目管理心得
查看>>
Android自学--一篇文章基本掌握所有的常用View组件
查看>>
灰度图像和彩色图像
查看>>
通过vb.net 和NPOI实现对excel的读操作
查看>>
TCP segmentation offload
查看>>
java数据类型
查看>>
数据结构——串的朴素模式和KMP匹配算法
查看>>
FreeMarker-Built-ins for strings
查看>>
验证DataGridView控件的数据输入
查看>>
POJ1033
查看>>
argparse - 命令行选项与参数解析(转)
查看>>