用python做自己主动化測试--对server端的自己主动化測试(3)-很多其它http client实例

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

#!/usr/bin/env python
#coding=utf-8

import requests

def 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  False

def 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  False

login_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測试。

时间: 2024-11-07 15:34:10

用python做自己主动化測试--对server端的自己主动化測试(3)-很多其它http client实例的相关文章

[Python Study Notes]CS架构远程访问获取信息--SERVER端

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' >>文件: ps_server.py >>作者: liu yang >>邮箱: [email protected] '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

[Python Study Notes]CS架构远程访问获取信息--SERVER端v2.0

更新内容: 1.增加内存信息获取 2.增加电池信息获取 3.增加磁盘信息获取 4.重新布局窗体 5.增加窗体名称 6.增加连接成功之前,不可按压 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' >>文件: ps_server.py >>作者: liu yang >>邮箱: [email protected] >&g

[转]使用 mitmproxy + python 做拦截代理

使用 mitmproxy + python 做拦截代理 本文是一个较为完整的 mitmproxy 教程,侧重于介绍如何开发拦截脚本,帮助读者能够快速得到一个自定义的代理工具. 本文假设读者有基本的 python 知识,且已经安装好了一个 python 3 开发环境.如果你对 nodejs 的熟悉程度大于对 python,可移步到 anyproxy,anyproxy 的功能与 mitmproxy 基本一致,但使用 js 编写定制脚本.除此之外我就不知道有什么其他类似的工具了,如果你知道,欢迎评论告

用python做网页抓取与解析入门笔记[zz]

(from http://chentingpc.me/article/?id=961) 事情的起因是,我做survey的时候搜到了这两本书:Computational Social Network Analysis和Computational Social Network,感觉都蛮不错的,想下载下来看看,但是点开网页发现这个只能分章节下载,晕,我可没时间一章一章下载,想起了迅雷的下载全部链接,试试看,果真可以把他们一网打尽,但是,sadly,迅雷下载的时候,文件名没办法跟章节名对应起来,晕,我可

12岁的少年教你用Python做小游戏

原地址:http://blog.jobbole.com/46308/ 本文由 伯乐在线 - 贱圣OMG 翻译自 Julian Meyer.欢迎加入技术翻译小组.转载请参见文章末尾处的要求. [感谢@贱圣OMG 的热心翻译.如果其他朋友也有不错的原创或译文,可以尝试推荐给伯乐在线.] 你有没有想过电脑游戏是怎样制作出来的?其实它没有你想象的那样复杂! 在这个教程里,你要学做一个叫<兔子和獾>的塔防游戏,兔子作为英雄,需要在城堡里抵御獾的进攻. 为了写这个游戏的代码,你将会用Python.好吧,我

《用Python做HTTP接口测试》学习感悟

机缘巧合之下,报名参加了阿奎老师发布在"好班长"的课程<用Python做HTTP接口测试>,报名费:15rmb,不到一杯咖啡钱,目前为止的状态:坚定不移的跟下去,自学+课程模式每天一小时! 1.学习初衷 打算学习Python,这个想法开始于2017年,和在网络上遇到的绝大多数测试人员不同,我的工作单位是一个大型国企,虽然从事软件测试工作已经有四年,可事实上,无论是测试理论还是实际项目经验,都处于一种停滞不前的状态,作为一个有理想的测试猿(害羞脸),这样的工作状态让人心酸,因

机器学习工作流程第一步:如何用Python做数据准备?

这篇的内容是一系列针对在Python中从零开始运用机器学习能力工作流的辅导第一部分,覆盖了从小组开始的算法编程和其他相关工具.最终会成为一套手工制成的机器语言工作包.这次的内容会首先从数据准备开始. -- 来自Matthew Mayo, KDnuggets 似乎大家对机器学习能力的认知总是简单到把一系列论据传送到越来越多的数据库和应用程序界面中,接着就期待能有一些神奇的结果出现.可能你对在这些数据库里究竟发生了什么有自己很好的理解-- 从数据准备到建模到结果演示呈现等等,但不得不说你依然需要依赖

python做词云 (WordCloud)

python做词云 (WordCloud) 1. 安装 某个教程给出的方法,到[这里][1]下载相应的wordcolud,然后到相应目录pip安装. 其实直接 pip install wordcloud 就ok了 ,进入python. import wordcloud成功即可. ##2. 文档简要说明 可以看到文档主要就3个主要的函数,目前主要介绍WordCloud模块以及相关的函数. WordCloud() class wordcloud.WordCloud(font_path=None, w

软件測试基本方法(六)之集成測试和系统測试

在软件开发中.常常会遇到这种情况.单元測试时确认每一个模块都能单独工作,但这些模块集成在一起之后会出现有些模块不能正常工作.比如,在chrome环境下用js写了一个实时捕捉video中特定区域的模块,正常工作:利用worker线程进行webgl场景渲染,也正常.但是当两个运算合并时.出现一个模块不能正常执行,原因在于两个模块不适合在worker线程中结合.基于worker本身的局限性,仅仅能有一个模块正常工作. 所以,非常有必要进行集成測试. (1)集成測试定义: 集成測试是将软件集成起来,对模