基于django rest framework的mock server实践

网上找了一下mock server的实现,发现python的基本都是基于flask来实现的,因最近在学django,就尝试用drf实现了下:

A brief introduction of sui_mock

sui mock server is an attempt that aim at dealing some issues of the third part service,get it from https://github.com/chengtch/sui-mock

Reference resources:
simple mock from testerhome with flask https://testerhome.com/topics/10238
ali mock platform https://yq.aliyun.com/articles/236198

1) Why we need mock

1.1 To simulate unstable services

    Because there is no business logic in mock server,that makes it stable enough

2.2 To quickly construct complex data

    Because we can customize a response

2.3 To rapidly construct abnormal scenes

    Because we can return any response code we want

2.4 To help the coders impove coding efficiency

    Because they don't need to wait too long for debugging

2.5 To help the testers get better working

    As a tester ,you should know what i am trying to say

2) Design logic

    Django + rest framework + mysql
CA6XB4N.png

3) Steps to complete

  • 3.1 create new django project named sui_mock
  • 3.2 create new app named app_mock
  • 3.3 design the models with all the api params
  • 3.4 make configrations of the settings about db,app,language
  • 3.5 makemigrations\migrate\createsuperuser: admin/your_password
  • 3.6 register the model class in the admin.py
  • 3.7 edit the serializer and views to implement the function logic
  • 3.8 config the urls.py to match the request path
  • 3.9 install all the dependency (get it from the requirement.txt)
  • 3.10 start the mockserver by python manage.py runserver 0.0.0.0:8000

4) Examples

4.1 Start the server and add an api in the backstage management system

NeX4Ql1.png
j4fy8Gf.png

4.2 Call the api by postman

J6hqWXD.png

5) Run server by https

first install some thirdpart libs:

pip install django-extensions
pip install django-werkzeug-debugger-runserver
pip install pyOpenSSL

then run the server:

python manage.py runserver_plus --cert server.crt 0.0.0.0:8000

finally visit the https server:

eg: https://192.168.254.1:8000/cnp/auth

转载于:https://www.cnblogs.com/chengtch/p/9570587.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/352906.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在Elasticsearch中索引Java Bean的简单方法

在数据存储方面,Java程序员习惯于使用魔术般持久的Java Bean。 诸如Hibernate和用于关系数据存储的JPA规范或Morphia和Spring Data MongoDB之类的解决方案是受欢迎的示例。 使用Elasticsearch的开发人员有时也有相同的愿望–传递Java bean并对其进行自动索引。 提供…

sturct stat 结构体中 st_mode 的含义

在<sys/stat.h>中定义的stat结构体内容如下&#xff1a; [cpp] view plaincopyprint? struct stat { dev_t st_dev; /* ID of device containing file */ ino_t st_ino; /* inode number */ mode_t…

MATLAB求解3对角系数矩阵方程,实验5.3 用追赶法求解三对角方程组

实验5.3 用追赶法求解三对角方程组实验目的会使用Matlab 语言编程使用追赶法求解线性方程组。实验原理设系数矩阵为三对角矩阵11222331110000000000000000n n n nn b c a b c a b A a b c a b ---?? ? ? ?? ? ?? ???则方程组Axf 称为三对角方程组。设矩阵A 非奇异&…

字符串操作以及打印 —— 实现上传下载的进度条功能

import sysdef processBar(num, total):rate num / totalrate_num int(rate * 100)if rate_num 100:r \r%s>%d%%\n % ( * rate_num, rate_num,)else:r \r%s>%d%% % ( * rate_num, rate_num,)sys.stdout.write(r)sys.stdout.flushprocessBar(10,100) 转载于:https://…

php去除每行的重复文本,php删除文本文件中重复行的方法

本文实例讲述了php删除文本文件中重复行的方法。分享给大家供大家参考。具体分析如下&#xff1a;这个php函数用来删除文件中的重复行&#xff0c;还可以指定是否忽略大小写&#xff0c;和指定换行符?1234567891011121314151617181920212223242526272829303132333435363738394…

Linux环境进程间通信(五): 共享内存(上)

Linux环境进程间通信&#xff08;五&#xff09;: 共享内存&#xff08;上&#xff09; 共享内存可以说是最有用的进程间通信方式&#xff0c;也是最快的IPC形式。两个不同进程A、B共享内存的意思是&#xff0c;同一块物理内存被映射到进程A、B各自的进程地址空间。进程A可以即…

JS 跳出多重循环

今天学到了如何跳出多重循环 转载于:https://www.cnblogs.com/dmc-nero/p/9573971.html

jna 使用_使用JNA的透明JFrame

jna 使用在使JFrame透明中&#xff0c;我展示了一种使用AWTUtilities类使框架透明的方法。 但是使用该类会导致访问限制编译时错误&#xff0c;该文章中还显示了Eclipse中的解析。 现在&#xff0c;这里是使用Java本机的版本。 我使用Java本机访问&#xff08;JNA&#xff09;库…

通过命令查看linux 密码,linux查看用户密码(linux查看用户密码命令)

linux查看用户密码(linux查看用户密码命令)2020-05-15 13:18:30共10个回答1、用户名和密码的存储位置存储帐号的文件:/etc/passwd存储密码的文件:/etc/shadow2、可以使用cat、more、head、tail以及vim等命令查看或者修改,如下图所示:比如要查找系统中admin普通用户的密码,则执行…

命名规范参考

转载于:https://www.cnblogs.com/jy13638593346/p/9575481.html

Guavate:桥接Guava和Java8的微型库

Java8很棒&#xff0c;并向JDK添加了一些有用的抽象&#xff0c;这些抽象通过Google出色的Guava commons库在Java社区中得到了普及。 小组讨论表明&#xff0c; 不久将有一个需要Java 8的Guava版本&#xff0c;从而弥合了Guava和Java8之间的鸿沟。 但是&#xff0c;直到这样的时…

常见的几种异常类型-熟记

今天把几个常见的异常总结一下&#xff0c;希望自己能熟记&#xff0c;别忘记&#xff01;&#xff01;&#xff01; 1.NullPointerException: 空指针异常。经验发现这个异常是经常会发生的&#xff0c;属于运行时异常。 举例&#xff1a; public static void main(String[] ar…

linux不重启更新内核,编译并使用kpath不重启更新linux-kernel

yum install ncurses-devel -ytar -xvf linux-4.9.3.tar.xzcd linux-4.9.3/make menuconfigmake allmake modules_installmake installKpatch主要有四个组件。kpatch-build 产生hot patch。 通过对比包含patch和不包含patch的kernel差异&#xff0c;产生…

The type sun.management.ManagementFactory is not visible

Eclipse默认将这些受访问限制的API设成了Error。 解决方法&#xff1a; 只要将Windows---Preferences---Java--Complicer---Errors/Warings里面的Deprecated and restricted API中的Forbidden references(access rules) 选为Waring就可以编译过了 今天在JDK1.7中引入sun.manage…

简单选项卡

简单选项卡 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>Document</title><style>#div1 {width: 350px;margin: 0 auto;}#div1 button{width: 100px; height: 30px; background-color: …

探索应用程序的指路明灯:Route 和 Router 入门指南(上)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

Linux密码是一个回文,usermod命令和用户密码管理

3.4 usermod命令3.5 用户密码管理3.6 mkpasswd命令3.4 usermod命令在某些情况下需要改变现的用户的属性&#xff0c;改变用户的home目录、登录名、密码、登录shell&#xff0c;截止日期等&#xff0c;在这种情况下“usermod命令被使用。实例如下&#xff1a;#格式如下&#xff…

php cdi_配置CDI对话的超时

php cdi在开发JSF应用程序时&#xff0c;CDI对话范围是一个很好的功能。 想象一下&#xff0c;您有大型数据表&#xff0c;需要很长时间才能加载。 由于高内存消耗&#xff0c;您通常不希望将加载的数据放置在会话作用域的Bean中。 而且&#xff0c;您不能将加载的数据放在视图…

org.apache.jasper.JasperException: An exception occurred processing JSP page /admin/jiaoshi/daochuEx

org.apache.jasper.JasperException: An exception occurred processing JSP page /admin/jiaoshi/daochuExc.jsp at line 163这两句话表示创建一个新的文件失败。所以可能是当前用户没有文件路径的访问权限&#xff0c;也有可能是文件路径错误等其他关于文件路径的问题