1. Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用。
[Python Requests快速入门 :]http://cn.python-requests.org/zh_CN/latest/

2. 没有经过测试的东西都是不完整的。
[测试 Flask 应用]http://docs.jinkan.org/docs/flask/testing.html

3. Requests接口测试实例
(1)导入需要的模块,并创建unittest.TestCase(这里默认安装好了Requests, 如果没有, pip install requests)

 # coding=utf-8
import json
import unittest import os
from nose.tools import *
from tests import helper
from flask import create_app, db
from flask.models import Warehouse, Provider, Category, \
Product, Stock, ShoppingCartGroup, shoppingcart, ShoppingCartItem, User, Order
from helper import generate_user, create_warehouse, create_stocks
from login_page import login
from forgery_py import name, address, currency, basic, lorem_ipsum
import random class RESTfulAPITest(unittest.TestCase):
def setUp(self):
self.app = create_app('testing')
self.app_crx = self.app.app_context()
self.app_crx.push()
self.client = self.app.test_client() db.drop_all()
db.create_all() user = generate_user(self.app)
login(self, user.email, user.password)
self.user = user from data import seeds
seeds.all_(self.app) def tearDown(self):
self.app_crx.pop()

(2)利用Requests进行接口测试。

     def test_if_imoport_check_works(self):
_url = '/' #测试的接口
_dir = './data/samples/orders/commons' #预设的json文件 def pass_extensions(_file):
filename, file_extension = os.path.splitext(_file)
if file_extension in ['.xlsx' '.cvs']:
data = {'file': open(os.path.join(root, file), 'rb')}
response = self.client.post(_url, data=data)
actual_data = json.loads(response.data) assert_equal(response.status_code, 200)
assert_greater(len(actual_data), 0)
assert_greater(len(actual_data.get('file')), 0)
assert_is_none(actual_data.get('errors')) for root, dirs, files in os.walk(_dir):
[pass_extensions(file) for file in files]

(3)测试网页返回的状态码

 1     def test_order_list(self):   #定义order list() 方法的测试用例
2 response = self.client.get('order/list.html')
3 assert_not_equal(response.status_code, 200) #判断返回的状态码,确定html 是否可用。

test_order_list继承自unittest.TestCase,是一个测试用例。

response=requests.get(self.base_url,params=self.list),get方法中两个参数分别是URL和传递的参数。请求的url其实就是html 。后面加上个断言,用户判断响应是否与预期一致,这里是响应状态码是否等于200。

python unittest 测试笔记(二):使用Requests的更多相关文章

  1. python unittest 测试笔记(一)

    测试最基本的原理就是比较预期结果是否与实际执行结果相同,如果相同则测试成功,否则测试失败. python 单元测试官方文档: [Python: 2.7] (https://docs.python.or ...

  2. 【原】Learning Spark (Python版) 学习笔记(二)----键值对、数据读取与保存、共享特性

    本来应该上周更新的,结果碰上五一,懒癌发作,就推迟了 = =.以后还是要按时完成任务.废话不多说,第四章-第六章主要讲了三个内容:键值对.数据读取与保存与Spark的两个共享特性(累加器和广播变量). ...

  3. python:unittest(测试框架)

    一,基本概念 TestCase:所有测试用例的基类 TestLoad:加载测试用例,返回TestSuite(测试套件) TestSuite:创建测试套件 TextTestRunner:运行测试用例 T ...

  4. Python unittest 测试输入(input)和输出(print)

    Python 自带的 unittest 库可以用来写单元测试. 测试输入输出的解决方法是: 将标准输入输出定向到一个StringIO类(python3是 io.StringIO). import un ...

  5. webdriver(python)学习笔记二

    自己开始一个脚本开始学习: # coding = utf-8 from selenium import webdriver browser = webdriver.Firefox() browser. ...

  6. 《简明python教程》笔记二

    面向对象的编程: 类和对象是面向对象编程的两个主要方面.类创建一个新类型,而对象是这个类的实例.对象可以使用普通的属于对象的变量存储数据.属于一个对象或类的变量被称为域.对象也可以使用属于类的函数来具 ...

  7. python基础学习笔记二之列表

    1.列表 ①列表的创建: ②列表的查询(索引): ③列表的切片操作: 此处要注意到:返回索引0到3的元素,顾头不顾尾. ④列表的增加: s.append()  #直接在结尾追加 s.insert()  ...

  8. Python unittest模块心得(二)

    基础概念介绍请参看: http://www.cnblogs.com/frost-hit/p/8295818.html 组织测试用例 unittest.TestSuite(tests=()): 除了使用 ...

  9. 【Python】学习笔记二:基本数据类型

    变量 python的变量不需要提前声明,可以直接输入: >>> str = 'oliver' 此时,str已经被赋值字符串oliver,在赋值之前并没有提前定义与事先声明 打印值 & ...

随机推荐

  1. 线段树(hdu 1754 i hate it)

    I Hate It Time Limit: 3000MS     Memory Limit: 32768 K Description 很多学校流行一种比较的习惯.老师们很喜欢询问,从某某到某某当中,分 ...

  2. Jquery对raido的一些操作方法

    raido 单选组radio:   $("input[type=radio][checked]").val(); 获  取一组radio被选中项的值 var item = $('i ...

  3. Linux-进程描述(3)之进程状态僵尸进程与孤儿进程

    进程状态 进程状态反映进程执行过程的变化.这些状态随着进程的执行和外界条件的变化而转换.为了弄明正正在运行的进程是什么意思,我们需要知道进程的不同状态.一个进程可以有多个状态(在Linux内核中,进程 ...

  4. angular的$http.post()提交数据到Java后台接收不到参数值问题的解决方法

    本文地址:http://www.cnblogs.com/jying/p/6733408.html   转载请注明出处: 写此文的背景:在工作学习使用angular的$http.post()提交数据时, ...

  5. Java集合之Map和Set

    以前就知道Set和Map是java中的两种集合,Set代表集合元素无序.不可重复的集合:Map是代表一种由多个key-value对组成的集合.然后两个集合分别有增删改查的方法.然后就迷迷糊糊地用着.突 ...

  6. Vmware Vsphere WebService之vijava 开发(二)一性能信息的采集(实时监控)

    最近一直没有更新这部分的内容,会利用五一时间完成vcenter这一个系列. 这里先给大家一本关于vijava开发的书,比较实用. 地址:http://pan.baidu.com/s/1gfkl9mj. ...

  7. openresty源码剖析——lua代码的加载

    ##Openresty是什么 OpenResty是一个基于 Nginx 与 Lua 的高性能 Web 平台,通过把lua嵌入到Nginx中,使得我们可以用轻巧的lua语言进行nginx的相关开发,处理 ...

  8. 关于使用mybatis的几点总结

    mybatis的几点总结 1.关于resultType和resultMap的使用 查询结果集统一采用resultType,不要采用resultMap,因为resultMap需要写许多的表字段和实体类的 ...

  9. hust1010 kmp

    There is a string A. The length of A is less than 1,000,000. I rewrite it again and again. Then I go ...

  10. Java scheduled executor

    A typical usage of java scheduled executor looks like this ScheduledExecutorService executor = Execu ...