测试平台系列(1) 搭建Flask服务】的更多相关文章

搭建Flask服务 项目地址 点我进入项目地址 代码都会在这里有所展示,喜欢的话可以帮点个star,谢谢大家了!如果你喜欢该教程,也可以分享给其他人. 关于选型 想了很久,本来打算用「Gin」做为后端服务,或者作为网关层,后面想了一下好像没这个必要.这个平台的用户量会比较有限,而且也会做一定的「服务拆分」.于是还是采用了更大众一点的口味: 「Flask」,有的同学可能会说,那怎么不用「Django」? 哈哈,问到点了,「Django」笔者是真不会,基本上没有接触过,从接触「Python Web开…
使用Flask蓝图(blueprint) 回顾 先来看一下上一篇的作业吧,使用「logbook」的时候,遇到了时区不对的情况.那么我们怎么去解决这个问题呢? 实际上logbook默认采用的是世界标准时间(utc),而我们的北京时间是比世界标准时间早8个小时的. 解决方案 其实在我们工作中经常会遇到很多奇怪的问题,最最简单的方式就是使用搜索引擎搜索对应的报错信息.然后找到结果最接近的内容,一般在「Stack Overflow」 「segmentfault」 「简书」 「CSDN」 「博客园」 「开…
问题 最近开发能力开放平台,需要将Dubbo服务转换成Rest服务,虽然转换很成功(后续文档会写出如何将Dubbo服务转换成Rest接口),但是调试起来特别的麻烦. 解决方案: Fiddler解决方案: 下载Fiddler,然后只需要添加一小段代码就能进行调试了: Java代码解决方案 然后想到用Java代码去访问.首先将下列代码添加到build.gradle中 compile 'org.apache.httpcomponents:httpclient:4.5' 代码如下: import org…
大家好~我是米洛! 我正在从0到1打造一个开源的接口测试平台, 也在编写一套与之对应的完整教程,希望大家多多支持. 欢迎关注我的公众号测试开发坑货,获取最新文章教程! 回顾 上一节我们让支持了前置条件复制功能.这一节本来打算给大家讲讲邮件的发送. 但在此之前,我想了一个很严重的问题. 配置 我们的测试平台,后续会接入yapi,接入其他系统.势必会有一个地方去维护这些数据. 包括发件人邮箱,密码等等数据. 但这些数据又通常是全局共享,如果放到db的话,很鸡肋,因为数据只有1条,如果放到redis,…
大家好~我是米洛! 我正在从0到1打造一个开源的接口测试平台, 也在编写一套与之对应的完整教程,希望大家多多支持. 欢迎关注我的公众号测试开发坑货,获取最新文章教程! 回顾 上一节我们调研了一下市面上的定时任务方案,最终确定为APScheduler,但据说在uvicorn下还有一些坑. 没关系,笔者也是在摸索阶段.如果有遇到问题,解决了也可以给大家参考. 这篇主要给大家介绍一下APScheduler的基本信息和使用方法. 四个名词 触发器: 定时任务什么时候触发 工作商店: 定时任务存在哪里,内…
大家好~我是米洛! 我正在从0到1打造一个开源的接口测试平台, 也在编写一套与之对应的完整教程,希望大家多多支持. 欢迎关注我的公众号测试开发坑货,获取最新文章教程! 定时任务 定时任务,顾名思义: 定时执行的任务,可以是一段bash命令,也可以是一个脚本文件.通常用于我们需要在特定时刻做事情. 举个例子: 每晚8点执行全业务场景接口自动化回归测试,又或者每隔20分钟去你家QQ农场偷菜! Python的定时任务 如果是大中型公司,一定有对应的平台让大家接入.一般这样的平台的名字或者描述都是: 分…
给Hello World添加日志 回顾 通过上篇内容,我们已经使用「Flask」完成了我们的第一个接口.我们可以看到,使用「Flask」来编写接口是十分简单的.那么接下来,我们丰富一下上面的例子. 需求 现在的需求来了,在我们平时的开发过程中,总会遇到一些问题.但是又不是必现的,所以我们可以通过一些手段来写入日志,去发现问题.一个很明显的例子就是try/exception,遇到未知问题的时候可以将问题记录至日志并在事后排查. 日志模块选用 logging 我们知道,在Python中有系统自带的功…
大家好~我是米洛! 我正在从0到1打造一个开源的接口测试平台, 也在编写一套与之对应的完整教程,希望大家多多支持. 欢迎关注我的公众号测试开发坑货,获取最新文章教程! 回顾 上一节我们提出了优化Dao逻辑的想法,那今天就试着来兑现之,并运用到Redis配置管理的开发中去. 初步构思list方法 我们在dao/init.py新建类: Mapper,以后所有的dao类都继承自它. 想想list需要什么,一般需要,字段,参数, 是like还是等于这3个重要的信息. 明白这个以后,我们的伪代码就好编写了…
大家好~我是米洛! 我正在从0到1打造一个开源的接口测试平台, 也在编写一套与之对应的完整教程,希望大家多多支持. 欢迎关注我的公众号测试开发坑货,获取最新文章教程! 回顾 上一节我们编写了Redis的相关配置编辑页面,博主这里也趁热打铁,把前端页面完善了.(可能会有一点点小问题,但应该主流程都正常) 其实和其他配置管理页面差不多,前端优化了一下面包屑,顶部的菜单也放回到左侧了.看看mac下的效果: 搜索选项改动了一些,所见即所得,如果搜索项发生变化,那么内容也会随之切换 关于Redis客户端的…
大家好~我是米洛! 我正在从0到1打造一个开源的接口测试平台, 也在编写一套与之对应的完整教程,希望大家多多支持. 欢迎关注我的公众号测试开发坑货,获取最新文章教程! 回顾 上一节我们牛刀小试,编写了redisManager,并且成功执行了redis命令. 那这一节,就让我们来折腾下在线执行Redis命令. 由于某些特定的原因,在使用aredis的时候有了一些不好的体验,主要是以下几个方面, 所以我打算弃坑了. get和set操作没有支持中文,非常难受 对于报错信息不是那么友好,因为我这边出现了…
大家好~我是米洛! 我正在从0到1打造一个开源的接口测试平台, 也在编写一套与之对应的完整教程,希望大家多多支持. 欢迎关注我的公众号测试开发坑货,获取最新文章教程! 回顾 上一节我们编写了在线执行Redis命令的功能,页面也勉强能用了.对于前置条件这块来说,就好像沙鲁吞了17号,已经算半个完全体了. 我们趁热打铁,解决一下因为部署多机器引发的Apscheduler重复执行的问题. APScheduler带来的问题 APScheduler其实本质上还是一个定时任务组件,它并没有celery那么强…
大家好~我是米洛! 我正在从0到1打造一个开源的接口测试平台, 也在编写一套与之对应的完整教程,希望大家多多支持. 欢迎关注我的公众号测试开发坑货,获取最新文章教程! 回顾 上节我们打了个野,解决了一下APScheduler的重复执行问题.在更上一节,我们编写好了Redis的在线执行功能. 那这一节我们就得把它运用到前置条件里面来了. 成果展示 由于博主都是先编码,再写文.所以是能展示成果的,今日份变化如下: 支持了前置条件(REDIS类型) 思路 前置条件要想支持Redis,思路其实很简单,模…
大家好~我是米洛! 我正在从0到1打造一个开源的接口测试平台, 也在编写一套与之对应的教程,希望大家多多支持. 欢迎关注我的公众号米洛的测开日记,获取最新文章教程! 回顾 上一节我们编写了在线执行测试计划功能,并稍微改了下报告页面.那其实我们之前的内容都是有很多坑在里面的. 比如http请求只支持了json和form,没有支持文件上传的请求,甚至有一些crud的功能都没有太完善. 不过不要紧,我的想法还是先创造,再完善.当然也不是盲目创造,也得提前预判好后面的走向. 为什么要用oss pity里…
大家好~我是米洛! 我正在从0到1打造一个开源的接口测试平台, 也在编写一套与之对应的教程,希望大家多多支持. 欢迎关注我的公众号米洛的测开日记,获取最新文章教程! 回顾 上一节呢,我们编写了oss的客户端这块内容.但其实我们是有目的的,我们知道,我们有时候测试一些接口,比方说: 批量导入商品,这种情况下,我们是要给接口发送一个文件(excel或者csv). 那怎么保管我们的测试数据呢,那就该oss发挥它的作用了.以往我们做测试,都会放一个目录保存测试数据,现在只不过是把数据放到了oss之中,其…
大家好~我是米洛! 我正在从0到1打造一个开源的接口测试平台, 也在编写一套与之对应的教程,希望大家多多支持. 欢迎关注我的公众号米洛的测开日记,获取最新文章教程! 回顾 上一节我们构思了一下怎么去支持Python脚本,在和@joker讨论以后,考虑到python脚本不会太复杂,所以我们这一节我们就先实现exec的版本. exec初体验 exec是一个比较厉害的内置库,它为想要执行python代码的用户提供了便利,与之对应的还有execfile版本,这个是文件版本的exec,也就是说,他接受的参…
大家好~我是米洛! 我正在从0到1打造一个开源的接口测试平台, 也在编写一套与之对应的教程,希望大家多多支持. 欢迎关注我的公众号米洛的测开日记,获取最新文章教程! 回顾 上一节我们讨论了怎么结束一个异步任务,我们还没有完全运用到项目之中.不过没关系,我们还有更紧要的事情要做: 由于之前完成了数据驱动,导致我们执行case的时候需要带上环境数据了,所以之前的在线执行case功能已经不能继续用了. 会出现上述问题,我们需要改造下前后端. 先看看疗效 执行单个case的时候必须选择环境. 多选的时候…
引入Ant Design Pro 回顾 还是继续回顾下之前的作业, 返回的中文变成了ascii字符,不要紧,我们光荣地百度一哈. 随便点进去看看,都可以找到正确答案: 可以看到,我们需要修改config中的「JSON_AS_ASCII」字段为False. 但是我们本身是没有这个配置项的,所以直接给加上就好了. pity/config.py import osclass Config(object):    ROOT = os.path.dirname(os.path.abspath(__file…
给Pity添加配置 回顾 还记得上篇文章创立的「Flask」实例吗?我们通过这个实例,给根路由 「/」 绑定了一个方法,从而使得用户访问不同路由的时候可以执行不同的方法. 配置 要知道,在一个「Web」项目中,有很多东西是可能会产生变化从而需要抽出来作为配置项的. 所以我们接着来讲讲怎么在「Flask」安排咱们自己的配置. 种类 「Flask」支持的配置种类挺多,大概有「py文件」, 「Config对象」, 「JSON」等. 我们这里采用「from_object」的方式. 编写pity/conf…
大家好,我是米洛,求三连!求关注测试开发坑货! 回顾 我们上一节已经写好了左侧数据表目录,今天继续完成sql编辑器的部分. 调研组件 monaco 因为我们的项目用的是React,市面上很多编辑器都是js编写,react提供了一层方便的封装. 比如我们在HTTP调试页面用的JSON编辑器,是以monaco为原型封装成的React组件. monaco呢,是微软开源的,大家熟悉的VsCode其实内部核心也是monaco. 优点是美观,专业,缺点是使用比较复杂. AceEditor 用过yapi的人都…
大家好~我是米洛! 我正在从0到1打造一个开源的接口测试平台, 也在编写一套与之对应的教程,希望大家多多支持. 欢迎关注我的公众号米洛的测开日记,获取最新文章教程! 回顾 上一节我们编写好了oss相关的crud接口,那这一节我们就得为oss数据的管理编写一个新的页面了. 即将做的是一个极度精简的文件管理页面. 效果图 因为我每次都是写完一段代码,然后编写对应教程,所以效果图这种东西自然是不在话下: 图片可以点击下载,也可以删除. 编写oss下载接口 在此之前还是先搞定下之前的作业. 编写随机获取…
回顾 上一节我们狠狠操练了一番oss,但我们的任务还很长久,所以我们需要继续打磨我们的功能. 那今天就让我们来思考下,如何在前置条件支持python脚本,多的不说,我们也暂时不考虑其他语言,因为光考虑支持python,已经够呛啦. 本文旨在探讨一些思路的可行性,不会实际着手编写. 究竟缺什么 因为我们只考虑Python脚本,所以我们必须认真考虑我们的需求. 能够通过python脚本构建数据 我举个例子,我可以用python脚本实现一些很复杂的功能,而这些功能在当前条件下都不大可能支持.比方说,我…
by Kenny Bastani Sunday, July 12, 2015 转自:http://www.kennybastani.com/2015/07/spring-cloud-docker-microservices.html This blog series will introduce you to some of the foundational concepts of building a microservice-based platform using Spring Cloud…
用Spring Cloud和Docker搭建微服务平台 This blog series will introduce you to some of the foundational concepts of building a microservice-based platform using Spring Cloud and Docker. 本系列文章将向你介绍一些有关使用Spring Cloud和Docker搭建微服务平台的基本概念. What is Spring Cloud? Sprin…
前言 上一篇<.net core实践系列之短信服务-Sikiro.SMS.Api服务的实现>讲解了API的设计与实现,本篇主要讲解编写接口的SDK编写还有API的测试. 或许有些人会认为,SDK的编写可以不需要,既然已经用了RESTful web服务与Swagger提供的接口描述,只要选择合适的接口调用框架,找到对应Swagger文档按需调用即可. 这个我赞同,特别在微服务架构下使用了API网关与服务发现.因此本篇也是借用编写SDK来模拟在客户端使用接口框架调用,并增加负载测试的讲解,供需要的…
XSS测试平台是测试XSS漏洞获取cookie并接收web页面的平台,XSS可以做js能做的所有事情,包括但不限于窃取cookie,后台增删文章.钓鱼.利用xss漏洞进行传播.修改网页代码.网站重定向.获取用户信息(如浏览器信息.IP地址等),这里使用的是基于xsser.me的源码. 搭建步骤: 1.在Windows系统中安装WAMP 下载地址:https://pan.baidu.com/s/1HY0hFnj6ywKjwHhB1vlOfg 解压密码:ms08067.com 双击安装即可 2.下载…
centos操作系统 uWSGI是一个web服务器,Nginx进行反向代理的其实跟这些服务器可以说没有任何关系,你提供动态内容的服务器可以是apache/nginx/tomcat,当然也可以是uWSGI,他们之间的代理关系其实都是通过tcp/ip协议进行通信的.当然uWSGI相对于其它服务器来说有其特殊的地方,不同之处在于它可以提供独特的uwsgi协议进行通信.也就是说,nginx和uWSGI之间的通信协议可以有多种选择,但常用http和uwsgi这两种 1.安装nginx yum instal…
背景:项目需要选择不同测试平台,筛选一个最佳平台 现状:一台机器安装多套环境,虚拟机太繁琐 解决方案:通过Docker模拟安装测环境 参考:https://blog.csdn.net/qq_32447301/article/details/81394024 使用 Docker 构建 Yapi1.创建 MongoDB 数据卷docker volume create mongo_data_yapi 2.启动 MongoDBdocker run -d --name mongo-yapi -v mong…
引言 软件企业的核心就是代码,如何确保代码的安全?如何在团队开发中协同工作?为解决这些问题,我们需要采用相应的管理工具来满足管理的需求.探长从最初的VSS.SVN.TFS到现在的Git存储一路走来,感觉管理工具的升级改造不但能够提升团队的办公效率,而且代码的存储更加的方便快捷. Git服务现在独树一帜,相比其他的管理工具更加灵活,目前比较流行的开源项目托管网站Github(相当于程序员的新浪微博),以及开源中国提供的码云,他们提供了免费的私有仓库托管,但相应的企业版收费比较昂贵.但很多企业不想把…
概要 <用OpenResty搭建高性能服务端>是OpenResty系列课程中的入门课程,主讲人:温铭老师.课程分为10个章节,侧重于OpenResty的基本概念和主要特点的介绍,包括它的指令.nginx_lua API.缓存.如何连接数据库.执行阶段等,并通过几个实际的操作和代码片段,告诉大家学习中如何搭建开发.测试环境,如何调试.查找和解决问题. 视频播放地址:https://study.163.com/course/introduction.htm?courseId=1520005 课程目…
写在前面 使用spring cloud搭建微服务框架,是我最近最主要的工作之一,一开始我使用bubbo加zookeeper制作了一个基于dubbo的微服务框架,然后被架构师否了,架构师曰:此物过时.随即,我上一套spring cloud,与公司大环境框架一致,也废了不少功夫,现在在这里分享基础结构给各位博友,如有不对的地方,欢迎大家直接评论区怂我.嘿嘿. 后续的代码已传至我的github,大家可以下载查看. 下载文件地址 微服务 首先我们要了解什么是微服务,以及微服务的作用,我们才能够顺利的搭建…