接口测试(9)

本来的打算是更新完8之后呢,后期就不在更新了,最近学习flask后,手又想开发个平台吧,吧我之前写的框架给运用上,形成一个简单的接口测试化平台吧,--IAPTest

我给他起名,有没有感觉很霸气啊,其实撤这么多不如来点使用的,其实做这个平台呢,更多的是对flask学习的一个利用吧。当时自己构思了一下午,其实也不知道大家想要的都是什么样子的,所以呢,就开始做了下面的设计。

大题上,第一版的demo版本的需求就是这样的,因为这里没有考虑其他太多, 那么接下来就是来开始选择了,我选择的是flask 框架,前端呢 ,我用的是bootstarp框架,

那么接下来,我是要对我的数据库进行设计。这里要提的是我对权限的设计呢,我更多的是选择了一个较为简单的方式,我去用一个字段去进行权限控制,我使用level字段, 0就表示我这个用户是普通用户,1就是管理员用户,这里很多地方的删除都做了管理员和非管理员的区别,管理员可以对所有的进行删除,但是普通管理是不能的, 用户管理界面只能管理员去运作这个。

下面给下我数据库上面的代码片段。

class User(db.Model):
    __tablename__=‘users‘
    id=db.Column(db.Integer(),primary_key=True,autoincrement=True)
    username=db.Column(db.String(63),unique=True)
    password=db.Column(db.String(252))
    user_email=db.Column(db.String(64),unique=True)
    status=db.Column(db.Integer(),default=0)
    level=db.Column(db.Integer(),default=0)
    phone = db.relationship(‘TestResult‘, backref=‘users‘, lazy=‘dynamic‘)
    def __repr__(self):
        return  self.username
    def set_password(self,password):
        self.password=generate_password_hash(password)
    def check_password(self,password):
        return  check_password_hash(self.password,password)
class Interface(db.Model):
    __tablename__=‘interfaces‘
    id=db.Column(db.Integer(),primary_key=True,autoincrement=True)
    project_name=db.Column(db.String(252))
    models_name=db.Column(db.String(252))
    Interface_name=db.Column(db.String(252))
    Interface_url=db.Column(db.String(252))
    Interface_meth= db.Column(db.String(252),default=‘GET‘)
    Interface_par=db.Column(db.String(252))
    Interface_back=db.Column(db.String(252))
    Interface_user_id=db.Column(db.Integer(),db.ForeignKey(‘users.id‘))
    def __repr__(self):
        return  self.Interface_name
class InterfaceTest(db.Model):
    __tablename__=‘interfacetests‘
    id = db.Column(db.Integer(), primary_key=True, autoincrement=True)
    project=db.Column(db.String(252))
    model=db.Column(db.String(252))
    Interface_name= db.Column(db.String(252))
    Interface_url = db.Column(db.String(252))
    Interface_meth = db.Column(db.String(252))
    Interface_pase = db.Column(db.String(252))
    Interface_assert=db.Column(db.String(252))
    Interface_user_id = db.Column(db.Integer(), db.ForeignKey(‘users.id‘))
    def __repr__(self):
        return  self.yongli_name
class TestResult(db.Model):
    __tablename__=‘tstresults‘
    id=db.Column(db.Integer(),primary_key=True,autoincrement=True)
    Test_user_id=db.Column(db.Integer(),db.ForeignKey(‘users.id‘))
    test_num=db.Column(db.Integer())
    pass_num=db.Column(db.Integer())
    fail_num = db.Column(db.Integer())
    skip_num=db.Column(db.Integer())
    test_time=db.Column(db.DateTime(),default=datetime.datetime.now())
    hour_time=db.Column(db.Integer())
    test_rep=db.Column(db.String(252))
    test_log=db.Column(db.String(252))
    def __repr__(self):
        return  self.id

  这里的代码呢,我就不一一赘述, 接口,接口测试用例,接口执行结果,都是和用户表一对多的关系,有了数据表,我们就可以去创建我们的数据库了,在创建的时候,我们还需要加一个配置文件,这里存放着一些数据库的基本配置相关的。

SECRET_KEY = ‘BaSeQuie‘
	basedir=os.path.abspath(os.path.dirname(__file__))
	SQLALCHEMY_DATABASE_URI = "sqlite:///" + os.path.join(basedir, "data.sqlite")
	SQLALCHEMY_COMMIT_ON_TEARDOWN = True
	SQLALCHEMY_TRACK_MODIFICATIONS=False
	CSRF_ENABLED = True

  这样我们就可以去生成我们的数据库,

界面来呢就是前段界面的编写,和后端处理函数的编写,这里呢,我就不一样叙述了,这里呢 给大家下面的几个地方的代码片段,展示下,主要是上传和下载这一块。

主要是测试日志的下载。

@app.route(‘/load/<string:filename>‘,methods=[‘GET‘])
def load(filename):
    basedir = os.path.abspath(os.path.dirname(__file__))
    file_dir=os.path.join(basedir,‘upload‘)
    response=make_response(send_from_directory(file_dir,filename,as_attachment=True))
    return response

单个用例的执行呢,我这里没有生成测试报告,我吧这个主要用到一个用例的检验上去,

多个用来呢,我这里用的是之前我在8上面提到的测试框架,在这里我做了一些修改,大的没有怎么改动,只是对部分代码进行优化。

接下来就是给大家展示下效果图

1.这是项目的目录

到这里呢,我的基本的测试框架就已经搞定了。前前后后一共大概花费了我三个周的时间吧,第一个demo版本就这么横空出世了。

我选择部署的是阿里云,

http://60.205.187.178:89

http://www.lileilei.online:89/

通过上面的地址可以访问到。

这个周末北京的天气还算晴朗,天也不热,写起来代码也是六六的。

有疑问可以加我qq:952943386或者我的qq群194704520

希望大家一起冲菜鸟飞到更高

有钱的也可以给我捧下。

时间: 2024-07-29 00:13:24

接口测试(9)的相关文章

微信接口测试

<!docType html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimu

Python+Requests接口测试教程(1):Fiddler抓包工具

本书涵盖内容:fiddler.http协议.json.requests+unittest+报告.bs4.数据相关(mysql/oracle/logging)等内容.刚买须知:本书是针对零基础入门接口测试和python+requests自动化的,首先本书确实写的比较基础,对基础内容也写的很详细,所以大神绕道. 为什么要先学fiddler? 学习接口测试必学http协议,如果直接先讲协议,我估计小伙伴们更懵,为了更好的理解协议,先从抓包开始.结合抓包工具讲http协议更容易学一些. 1.1 抓fir

接口测试概述:概念、目的、流程、工具、技能以及接口用例设计

一.什么是接口测试 二.接口测试流程 三.接口测试目的 四.接口测试用例设计 五.接口测试内容 六.接口测试工具 七.接口测试需要掌握的知识

chrome插件 postman插件 接口测试、API &amp; HTTP 请求调试工具

Postman 是一个非常棒的Chrome扩展,提供功能强大的API & HTTP 请求调试. 它能够发送任何类型的HTTP requests (GET, HEAD, POST, PUT..),附带任何数量的参数+ headers. 支持不同的认证机制(basic, digest, OAuth),接收到的响应语法高亮(HTML,JSON或XML). Postman 能够保留了历史的请求,这样我们就可以很容易地重新发送请求,有一个“集合”功能,用于存储所有请求相同的API/域. 这个扩展还有一些更

jmeter关联和接口测试的内容

[接口测试之添加测试计划-线程组-sampler] 1.建立测试计划    只要打开执行Jmeter.bat,就会有Jmeter的桌面运行界面出来,会自动建立一个测试计划,如下图所示: 2.添加完测试计划后,就要添加对应的线程组,所有的测试步骤都是在线程组下面执行的,如下所示: 添加完成后,就可以看到自己所添加的线程组了. 由于我是要测试多个接口,为了方便控制,我是为每一个业务逻辑建立了对应的线程组. 3.根据自己测试的接口类型,建立对应的测试步骤,我这里就是HTTP接口,所以请求是基于HTTP

接口测试 总结

前言: 本文主要针对http接口进行测试,使用Jmeter工具实现. Jmter工具设计之初是用于做性能测试的,它在实现对各种接口的调用方面已经做的比较成熟,因此,本次直接使用Jmeter工具来完成对Http接口的测试. 1.介绍什么是接口 现在最常用的2种接口就是webservice和http api接口,webservice接口是走soap协议通过http传输,请求报文和返回报文都是xm格式,可以通过jme.soapui工具进行测试: http api接口是走http协议通过路径来区分调用的

Python 接口测试(一)

1. 概念: 接口测试是测试系统组件间接口的一种测试.接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点.测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等. 2.    环境准备: (1.)安装python https://www.python.org/downloads/ 下载你想用的版本(本文介绍的版本是3.5的版本).安装后,添加系统环境变量.在cmd中输入python, (2.)安装requests库. https://pypi.pyth

Python 接口测试(五)

五:使用python进行组织编写接口测试用例 接口测试其实就是几个步骤. 拿到接口的url地址 查看接口是用什么方式发送 添加请求头,请求体 发送查看返回结果,校验返回结果是否正确 明白了接口测试的测试步骤,那么我们就可以来组织我们的代码. import requests # 接口的url url = "http://fanyi.baidu.com/v2transapi" # 接口的参数 params = { "from":"en", "

接口测试-测试人员必备技能

接口测试,其实并没有那么可怕,但是作为测试人员也是必不可少的技能. 接口分为:内部接口和外部接口. 内部接口:是浏览器与服务器的接口.这个很容易理解,web开发一般分前端和后端,前端开发人员用html/css/javascript等技术.后端开发人员用php/java/python等各种语言.用户输入的数据是输入到前端页面上.怎样把这些数据传递到后台呢?通过http协议的get.post请求来实现前后端的数据传递.这也可以认为是接口测试,这通常称之为内部接口. 外部接口:大部分都是服务端与服务端

关于接口测试的好东东,自己的整理的

什么是接口测试? 接口是指系统模块与模块或系统与系统间进行交互,一般我们用的多的是HTTP协议的接口.WebService协议的接口,还有RPC(Remote Procedure Call Protocol)--远程过程调用协议 的接口.? 不管是哪种接口,其本质就是发送一个request,然后服务器响应后返回一个response,然后我们对response进行分析,这即是接口测试. 为什么要做接口测试? 随着系统越来越多,以及复杂性越来越高,为了保证系统的独立性,也为了使业务更加的独立,系统间