python unittest 测试笔记(二):使用Requests
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的更多相关文章
- python unittest 测试笔记(一)
测试最基本的原理就是比较预期结果是否与实际执行结果相同,如果相同则测试成功,否则测试失败. python 单元测试官方文档: [Python: 2.7] (https://docs.python.or ...
- 【原】Learning Spark (Python版) 学习笔记(二)----键值对、数据读取与保存、共享特性
本来应该上周更新的,结果碰上五一,懒癌发作,就推迟了 = =.以后还是要按时完成任务.废话不多说,第四章-第六章主要讲了三个内容:键值对.数据读取与保存与Spark的两个共享特性(累加器和广播变量). ...
- python:unittest(测试框架)
一,基本概念 TestCase:所有测试用例的基类 TestLoad:加载测试用例,返回TestSuite(测试套件) TestSuite:创建测试套件 TextTestRunner:运行测试用例 T ...
- Python unittest 测试输入(input)和输出(print)
Python 自带的 unittest 库可以用来写单元测试. 测试输入输出的解决方法是: 将标准输入输出定向到一个StringIO类(python3是 io.StringIO). import un ...
- webdriver(python)学习笔记二
自己开始一个脚本开始学习: # coding = utf-8 from selenium import webdriver browser = webdriver.Firefox() browser. ...
- 《简明python教程》笔记二
面向对象的编程: 类和对象是面向对象编程的两个主要方面.类创建一个新类型,而对象是这个类的实例.对象可以使用普通的属于对象的变量存储数据.属于一个对象或类的变量被称为域.对象也可以使用属于类的函数来具 ...
- python基础学习笔记二之列表
1.列表 ①列表的创建: ②列表的查询(索引): ③列表的切片操作: 此处要注意到:返回索引0到3的元素,顾头不顾尾. ④列表的增加: s.append() #直接在结尾追加 s.insert() ...
- Python unittest模块心得(二)
基础概念介绍请参看: http://www.cnblogs.com/frost-hit/p/8295818.html 组织测试用例 unittest.TestSuite(tests=()): 除了使用 ...
- 【Python】学习笔记二:基本数据类型
变量 python的变量不需要提前声明,可以直接输入: >>> str = 'oliver' 此时,str已经被赋值字符串oliver,在赋值之前并没有提前定义与事先声明 打印值 & ...
随机推荐
- node.js前后台交互示例 -- 使用node.js实现用户注册功能
node.js环境自行搭建,参考菜鸟教程的node.js就可以. 1 通过ajax提交index.html中form表单 register.html文件如下: <!doctype html> ...
- 海康/大华 IpCamera RTSP地址和格式
海康:rtsp://[username]:[password]@[ip]:[port]/[codec]/[channel]/[subtype]/av_stream说明:username: 用户名.例如 ...
- Spring + Mybatis 项目实现动态切换数据源
项目背景:项目开发中数据库使用了读写分离,所有查询语句走从库,除此之外走主库. 最简单的办法其实就是建两个包,把之前数据源那一套配置copy一份,指向另外的包,但是这样扩展很有限,所有采用下面的办法. ...
- Python数据处理进阶——pandas
对于python进行数据处理来说,pandas式一个不得不用的包,它比numpy很为强大.通过对<利用python进行数据分析>这本书中介绍pandas包的学习,再加以自己的理解,写下这篇 ...
- 排序算法合集 python
直接选择.插入排序 直接选择排序和直接插入排序类似,都将数据分为有序区和无序区,所不同的是直接播放排序是将无序区的第一个元素直接插入到有序区以形成一个更大的有序区,而直接选择排序是从无序区选一个最小的 ...
- Python全栈之路-Day31
1 反射 反射的精髓是通过字符串去获取对象属性的值 1.1 基于类和对象反射的属性 #!/usr/bin/env python # __Author__: "wanyongzhen" ...
- Oracle修改监听端口号1521[转]
在oracle中,默认的监听端口号为1521,一旦有人扫描出这个端口号就会知道此服务器为oracle数据库服务器,存在极其大的安全隐患,在这里,教大家如何修改oracle默认端口号为9999: 1.查 ...
- .bind.apply() 解决 new 操作符不能用与 apply 或 call 同时使用
背景: 小明想要用数组的形式为 Cls.func 传入多个参数,他想到了以下的写法: var a = new Cls.func.apply(null, [1, 2, 3]); 然而浏览器却报错Cls. ...
- JavaScript中return的用法和this的用法详解
JavaScript中return的用法详解 最近,跟身边学前端的朋友了解,有很多人对this和函数中的return的用法和意思理解的比较模糊,这里写一篇博客跟大家一起探讨一下return和this的 ...
- __call()和__callStatic()实例详解
<?php class Demo { //第一个参数是方法名,第二个参数是方法参数,以数组形式传入 public function __call($method,$args) { //遍历参数$ ...