python + requests :接口自动化框架入学

https://my.oschina.net/u/3041656

python,现在越来越多的作为自动化测试的一个重要工具,所以呢作为入门的一个简单的自动化测试框架的搭建需要掌握,这里呢给大家简单的展示一下:

对于要做的东西,要想管理方便,那么业务和数据 做好分离保管,方便维护。

摘要:

建立一个目录存放你要做的数据和业务

common:存放一些共通的方法

result:执行过程中生成的文件夹,里面存放每次测试的结果

testCase:用于存放具体的测试case

config:配置一些常量,例如数据库的相关信息,接口的相关信息等

readConfig: 用于读取config配置文件中的内容

runAll:用于执行case

 

  1.

接口请求一般都会跟数据库交互所以,我们要把需要的信息写到cofg.ini里面

[DATABASE]  #-----》是一个section的名字 读取配置的时候用到
host = 172.16.33.205
username = game_admin
password = bHYACbxgM2gWHnF6Il1nX8VnNEfb51KY
port = 3307
database = game_invoice

[HTTP]
# 接口的url
baseurl = http://XXXXXX
port = 8080
timeout = 1.0

 2. readCf.py用来读取配置文件的配置信息

import os
from configparser import ConfigParser
# *_*coding:utf-8 *_*
__author__ = "Test Yunzhe"
# os

dirpath = os.path.realpath(os.getcwd()) # 取改目绝对路径
inipahth = os.path.join(dirpath, 'confg.ini')


class read_cf:

def __init__(self):
# 取配置文件的内容就要用配置文件取 在造函数里面添加
self.confg = ConfigParser() # new 了一个
self.confg.read(inipahth)

def get_http(self, option):
# 里的option [HTTP] section里定的各种配置参数名字
return self.confg.get("HTTP", option)

def get_data(self, option):
return self.confg.get("DATABASE", option)

 1和2 是一个基本的操作 所以这里很容易掌握

3. 封装一个log类 对于操作记录做一个记录打印

import logging
import os
import logging
import threading

import readconf
from readconf import Read_conf


class Logg:

def __init__(self):
global dirp, logpath, resultpath
dirp = readconf.jdpath
self.log = logging.getLogger()
self.log.setLevel(logging.DEBUG)
self.log.setLevel(logging.INFO)
resultpath = os.path.join(dirp, 'log')
print(resultpath)
ss = os.path.exists(resultpath)
print(ss)
if not ss:
os.mkdir(resultpath)
# 建一个hander
hander = logging.FileHandler(os.path.join(resultpath, 'out.log'))
# defined formatter
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
# defined formatter
hander.setFormatter(formatter)
# add handler
self.log.addHandler(hander)


class Mylog:
log = None
mythread = threading.Lock

def __init__(self):
pass

@staticmethod
def getlog(self):
if Mylog.log is None:
Mylog.mythread.acquire()
Mylog.log = Logg()
Mylog.mythread.release()

return Mylog.log
4.

 https://gitee.com/null_534_6629/interfacetest/tree/master 

 https://my.oschina.net/u/3041656

 

posted @ 2020-12-29 16:17  冬天里的狐狸  阅读(135)  评论(0编辑  收藏  举报