zoukankan      html  css  js  c++  java
  • 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)

     1 # coding=utf-8
     2 import json
     3 import unittest
     4 
     5 import os
     6 from nose.tools import *
     7 from tests import helper
     8 from flask import create_app, db
     9 from flask.models import Warehouse, Provider, Category, 
    10     Product, Stock, ShoppingCartGroup, shoppingcart, ShoppingCartItem, User, Order
    11 from helper import generate_user, create_warehouse, create_stocks
    12 from login_page import login
    13 from forgery_py import name, address, currency, basic, lorem_ipsum
    14 import random
    15 
    16 
    17 class RESTfulAPITest(unittest.TestCase):
    18     def setUp(self):
    19         self.app = create_app('testing')
    20         self.app_crx = self.app.app_context()
    21         self.app_crx.push()
    22         self.client = self.app.test_client()
    23 
    24         db.drop_all()
    25         db.create_all()
    26 
    27         user = generate_user(self.app)
    28         login(self, user.email, user.password)
    29         self.user = user
    30 
    31         from data import seeds
    32         seeds.all_(self.app)
    33 
    34     def tearDown(self):
    35         self.app_crx.pop()

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

     1     def test_if_imoport_check_works(self):
     2         _url = '/'  #测试的接口
     3         _dir = './data/samples/orders/commons'  #预设的json文件
     4 
     5         def pass_extensions(_file):
     6             filename, file_extension = os.path.splitext(_file)
     7             if file_extension in ['.xlsx' '.cvs']:
     8                 data = {'file': open(os.path.join(root, file), 'rb')}
     9                 response = self.client.post(_url, data=data)
    10                 actual_data = json.loads(response.data)
    11 
    12                 assert_equal(response.status_code, 200)
    13                 assert_greater(len(actual_data), 0)
    14                 assert_greater(len(actual_data.get('file')), 0)
    15                 assert_is_none(actual_data.get('errors'))
    16 
    17         for root, dirs, files in os.walk(_dir):
    18             [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。 

  • 相关阅读:
    基础 ByteBuffer 和 ByteBuf
    Java 堆栈,内存分配理解
    JVM 调优参数设置
    Python 安装 matplotlib 制图
    UOJ#207. 共价大爷游长沙
    ORM学习 一 : JPA JDBC
    常见的Web攻击手段
    《Kubernetes权威指南第2版》学习(二)一个简单的例子
    五 pyJWT使用
    《Kubernetes权威指南第2版》学习(一) Kubernetes是什么
  • 原文地址:https://www.cnblogs.com/bevis-blog/p/5807773.html
Copyright © 2011-2022 走看看