用python做自动化测试--对服务器端的自动化测试(2)-更多http client实例

上一篇中只是实现了一个很简单的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测试。

用python做自动化测试--对服务器端的自动化测试(2)-更多http client实例

时间: 2024-08-06 14:56:12

用python做自动化测试--对服务器端的自动化测试(2)-更多http client实例的相关文章

用python做自动化测试--对服务器端的自动化测试(2)-发送端模拟器

python的http client库很多,有httplib, urllib 和urllib2,但这几个用起来还是比较麻烦,requests 是高富帅(http://docs.python-requests.org/en/latest/),接口更简洁,优雅. 支持Json, 很方便设置发送的header, session管理. #!/usr/bin/env python #coding=utf-8 import time,logging,sys,os import pickle import u

用python做自动化测试--对服务器端的自动化测试(1)-系统架构

原来的计划中,关于对服务器端的自动化测试,其实我是打算讲解我们短信网关和彩信网关的自动化测试,在电信行业江河日下的情况下,接触这块协议的人估计会很少,还是讲讲大家接触的到的吧. 其实对我来说,接触的应用层协议太多了,HTTP协议和SMPP,Diameter,CMPP, Radius协议没有太大区别,只是每种协议的head, body, 消息流程不一样而已. 整个服务器端的自动化测试主要包括2个部分,模拟器部分(simulator)和控制台(controller),如下图系统架构.其实模拟器部分(

[转] 用python做自动化测试

用python做自动化测试--序 https://wiki.python.org/moin/PythonTestingToolsTaxonomy 原 使用python进行windows自动化测试(1) http://my.oschina.net/yangyanxing/blog/166838 Python Testing Tools Taxonomy https://wiki.python.org/moin/PythonTestingToolsTaxonomy

用python做自动化测试--对Java代码做单元测试 (1)

大多数时间我们说的python,指的是C实现的python, 在这篇文章里,我们要说的是java实现的python,她的名字叫Jython, 大家可以到到官方网站http://www.jython.org/ 看看,最近2年很活跃,发布新版本比较多,其实我在jython 2.1版本的时候就开始接触过,但当时看到社区不活跃,没继续学习应用下去.最近公司有几个项目需要对外发布java 实现的API, java毕竟没那么熟悉,写起API接口测试的代码来速度还是没那么快, 还是高大上的python来的快,

用python做自动化测试--对Java代码做单元测试 (2)-导入第三方jar包

用Jython对Java做单元测试,当然是为了测试公司开发的java代码,这样就涉及到导入第三包的问题,怎么导入第三方包? 可以利用http://blog.csdn.net/powerccna/article/details/37739207 这里的实现的函数,扫描指定目录下的jar包,然后通过sys.path.append()函数加入到jython的sys.path里面. for jar_file in scan_files("/home/jim/java_jar",postfix=

小白学 Python 爬虫(28):自动化测试框架 Selenium 从入门到放弃(下)

人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Linux基础入门 小白学 Python 爬虫(4):前置准备(三)Docker基础入门 小白学 Python 爬虫(5):前置准备(四)数据库基础 小白学 Python 爬虫(6):前置准备(五)爬虫框架的安装 小白学 Python 爬虫(7):HTTP 基础 小白学 Python 爬虫(8):网页基

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

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

女神照片当背景,使用Python做个免费的VIP视频播放软件

/1 前言/ 最近在家闲的快发霉了,想看看电视剧吧,发现这个要充会员,那个也要充会员??? 这种特殊时期我连饭都吃不起了哪还有钱充会员,于是我决定发挥技术宅男的优势,用python做个免费的vip视频播放软件,从此告别会员充值,“白嫖”看视频! 下面本宅男就给大家介绍一下,不充会员,如何看VIP视频. 主体思路是引用VIP视频解析接口,然后用python将其整合到可视化窗口,再添加VIP视频网址输入模块和启动浏览器播放按钮,最后,使用女神的照片为背景,就大功告成了,下面是具体的实现步骤. /2

python做题

Python题目 1.打印一个九九乘法表 #!/usr/bin/env python # -*- coding: utf-8 -*- """ __author__ = 'YeXiaodong' __QQ__= '12519460' __Email__ = '[email protected]' """ x = 1 list_table = [] print('九九乘法表'.center(100,' ')) while x < 10: lis