做一个将参数和用例分开放置,并且输出log的接口测试框架

我的框架如下所示

Log文件用来设置log输出文件,需要时可以在用例内调用输出,config用来填写一切需要的参数信息,jiekou_post_test是我用来写接口测试用例的文件,log是自动输出的log文件,readConfig是读取congfig参数的执行文件

Log.py

#encoding=utf-8
import logging

from datetime import datetime

import threading

class myLog:
  def __init__(self):
    self.logger = logging.getLogger()
    self.logger.setLevel(level = logging.INFO)
    handler = logging.FileHandler("log.txt")
    formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
    handler.setFormatter(formatter)
    self.logger.addHandler(handler)

config用来存放参数

readConfig

# encoding=utf-8
import os

import codecs

import ConfigParser

proDir = os.path.split(os.path.realpath(__file__))[0]#os.path.realpath(__file__),获取当前执行脚本的绝对路径

configPath = os.path.join(proDir, "config.ini")

class ReadConfig:

  def __init__(self):

    fd = open(configPath)

    data = fd.read()

# remove BOM

    if data[:3] == codecs.BOM_UTF8:#判断是否包含EF BB BF。根据每个字节的开头的固定格式,我们就可以判断是否是UTF8的编码

      data = data[3:]

    file = codecs.open(configPath, "w")#直接用编码打开,防止open打开的编码不一致报错问题

    file.write(data)

    file.close()

    fd.close()

    self.cf = ConfigParser.RawConfigParser()#配置文件的格式是: []包含的叫section, section 下有option=value,可以直接get(section,option)来获取value

    self.cf.read(configPath)

  def get_http(self, name):

    value = self.cf.get("HTTP", name)

    return value

测试用例文档如下,用try输入一个不存在的IP,这样抓取错误写到log中

#encoding=utf-8
import sys
reload(sys)
sys.path.append('..')
from readConfig import ReadConfig
from common.Log import myLog
import requests
import json,time

#sys.setdefaultencoding("utf-8")
#print ReadConfig().get_http('url')
session = requests.session()
url=ReadConfig().get_http('url')
#url = "http://home.travelsky.net/publish/zghxnw/index.html"
params=ReadConfig().get_http('params')
#headers=ReadConfig().get_http('headers')
r = session.post(url, data=params,verify=False)
if u'今天我生日' in r.text:
print "login success"
url2=ReadConfig().get_http('url2')
#url2="http://home.travelsky.net/publish/zghxnw/847/860/863/index.html"
s = session.get(url2)
if u'三里屯办公区' in s.text:
print "link success"
try:

  response = requests.get(www.dfsfss.com, timeout=float(timeout))#乱写的IP

  print 'response'

except:
  logger=myLog().logger

  logger.error("Time out!")

log如下

转载于:https://www.cnblogs.com/garvicker/p/10233516.html

request,logging,ConfigParser——接口框架相关推荐

  1. Python-基于flask的接口框架

    Python-基于flask的接口框架 ​Flask是一个Python编写的Web 微框架,让我们可以使用Python语言快速实现一个网站或Web服务.本文参考自Flask官方文档,大部分代码引用自官 ...

  2. moco接口框架介绍

    moco接口框架介绍 Moco 是一个搭建模拟服务器的工具,其支持 API 和独立运行两种方式,前者通常是在 junit .testng等测试框架中使用,后者则是通过运行一个 jar 包开启服务 在m ...

  3. 轻量级PHP接口框架PhalApi开源接口框架 v2.17.1源码

    简介: PhalApi简称π框架(派框架),一个轻量级PHP开源接口框架,配套运营管理平台,专注于接口服务开发,支持HTTP/SOAP/RPC协议,拥有自动生成的在线文档.多种开发语言的客户端SDK包 ...

  4. 接口框架 python+unittest+request+HTMLTestRunner

    request的各种方法主要用来处理客户端浏览器提交的请求中的各项参数和选项.如POST,GET最常用的两种请求 官方文档:http://docs.python-requests.org/en/mas ...

  5. get request uni 参数_Python+request+unittest实现接口测试框架集成实例

    1.为什么要写代码实现接口自动化 大家知道很多接口测试工具可以实现对接口的测试,如postman.jmeter.fiddler等等,而且使用方便,那么为什么还要写代码实现接口自动化呢?工具虽然方便,但 ...

  6. php api 无符号整数基数为16的整数参数的字符串表示形式,[1.12]-参数规则:接口参数规则配置 | PhalApi(π框架) - PHP轻量级开源接口框架 - 接口,从简单开始!...

    "播下一种思想,收获一种行为:播下一种行为,收获一种习惯:播下一种习惯,收获一种性格:播下一种性格,收获一种命运." --<成君忆:水煮三国> 1.12.1 参数解析 ...

  7. php get请求 json返回,[1.23]-请求和响应:GET和POST两者皆可得及超越JSON格式返回 | PhalApi(π框架) - PHP轻量级开源接口框架 - 接口,从简单开始!...

    1.23.1 请求 把我们后台的API想象成一个函数,那么请求的参数就是我们的参数列表:而接口响应的数据则对应函数返回的结果. 对于请求,正如前面所看到的,我们可以使用$_GET,也可以使用$_POS ...

  8. Asp.net 面向接口框架之应用程序上下文作用域组件

    在团队中推广面向接口开发两年左右,成果总体来说我还是挺满意的,使用面向接口开发的模块使用Unity容器配置的功能非常稳定,便于共享迁移(另一个项目使用只需要复制配置和调用接口即可)也很好扩展(操作的数 ...

  9. Moco接口框架的应用实战

    一.moco框架的基本功能 moco是一个模拟接口请求和发送的测试框架,包括但不局限于get请求,post请求,cookies和heades等等,是github上一个开源的测试框架,官网:https: ...

最新文章

  1. Javascript继承4:洁净的继承者----原型式继承
  2. clistctrl 单机空白处 会取消选中_官方默许BUG:无法选中也能被控制?这些秘密很多玩家到现在都没发现!...
  3. c++ 命名空间的using声明
  4. js数组获取index_通过事例重温一下 JS 中 常见的15 种数组操作(备忘清单),收藏...
  5. Undertow 实现反向代理
  6. android 教程实例系列
  7. 解析Disruptor的依赖关系
  8. 科技赋能时代 用ocr身份证识别
  9. templates模板文件
  10. countif函数比较两列不同_Excel如何对比两列姓名找出两列相同和不同的姓名有哪些方法...
  11. 源中瑞区块链baas服务平台搭建系统
  12. 服务器稳定时间,NTP时钟服务器网络时间服务器哪个更好呀?
  13. torch.backends.cudnn.benchmark的用法
  14. 使用aria2搭建离线下载服务器
  15. 中枢神经系统解剖结构图,神经系统的解剖结构
  16. winrar v3.8 的注册码
  17. 链圈百家,IT词话:BTA 2018先锋资源集锦(另附PPT下载)
  18. 程序人生:为什么现在的年轻人看不到希望?
  19. 网页设置MP4背景,解决html音乐无法自动播放
  20. 关于生命和人工智能的一些遐想

热门文章

  1. 病毒研究之感染linux脚本
  2. SQL Server 学习笔记
  3. C语言 计算一串字符中出现的数字字符数
  4. mysql使用数据库预处理_php中对MYSQL操作之预处理技术(2)数据库dql查询语句
  5. Python遍历字典的方法
  6. 【多线程】ThreadPoolExecutor 类的使用详解
  7. Ubuntu 16.04 LTS今日发布
  8. net-speeder 安装
  9. 如何让程序运行在所有CPU核心上
  10. Unity编辑器扩展Texture显示选择框