Android如何自定义服务器DynamicMockServer的使用
目录
引用
一、拉去dynamicMockServer最新代码
二、导入测试接口配置文件。
三、再次运行APP,验证服务是否可用编辑
四、个性化配置自己需要的接口和返回信息
五、根据访问参数动态返回信息
六、自定义接口和参数校验配置
在平时开发时经常需要与服务器进行联调,但是服务器开发往往比前端的要滞后。这时候需要我们自己去mock数据来调通流程。
今天给大家介绍一款Android上的MockServer----DynamicMockServer,支持接口调用,静态文件。
DynamicMockServer:
- 灵活配置需要mock的接口。
- 动态修改接口返回信息。(仅需把新的返回信息push到sdcard即可,不需要重启app)
- 支持静态文件的返回。(图片、音乐等)
- 支持MockServer服务后台常驻。
引用
implementation 'com.gitee.gggl:dynamic-mock-server:v1.0'
一、拉去dynamicMockServer最新代码
1、git clone https://gitee.com/gggl/dynamic-mock-server.git
2、Android Studio 导入dynamic-mock-server
工程结构:
1、app -> 测试工程,依赖并启动mockserver服务。
2、mockserver -> http mock server
二、导入测试接口配置文件。
1、运行app,默认在sdcard里创建配置文件目录。
/sdcard/Android/data/com.macoli.dynamicmockserver/files/configuration_test
2、导入测试使用的配置文件。
测试使用的配置文件在工程的(mock_server/configuration_test)目录下。
将mock_server/configuration_test下的所有文件导入到手机的/sdcard/Android/data/com.macoli.dynamicmockserver/files/configuration_test目录下。
文件目录解析:
- mock_server_config.json文件定义了mockserver的基本信息和我们需要支持的接口信息。(get、post、static下是我们接口需要返回内容)
- get 目录下文件对应所有get请求接口返回信息。
- post目录下文件对应所有post请求的接口返回信息
- static目录对应所有需要请求的静态资源(音乐、图片)
三、再次运行APP,验证服务是否可用
再次运行app,点击static按钮,默认会展示出两张图片。如下图。说明我们的服务已经正常启动了。
四、个性化配置自己需要的接口和返回信息
打开mock_server_configuration.json配置文件。这个文件定义了服务器配置和我们需要的接口信息。
port:定义服务器端口。
base_path:定义我们服务器使用的sdcard根目录。后续的get、post、static返回信息都在这个base_path目录下。
get数组:定义所有get请求
uri:接口的URI
default_path:接口返回信息文件路径。比如login接口:我们默认的返回信息是get/login文件(get目录由代码自动添加)最后我们的login文件放在/sdcard/Android/data/com.macoli.dynamicmockserver/files/configuration_test/get/login
static:标识这个资源是否是静态资源,如果是静态资源,mockserver默认会去static目录下查找对应的文件。
仅需根据提供的测试配置信息格式来配置自己需要的接口即可,配置完成后将mock_server_configuration.json重新push回手机的/sdcard/Android/data/com.macoli.dynamicmockserver/files/configuration_test/目录下。注:此处如果修改了base_path,根据自己修改后的目录进行push。
五、根据访问参数动态返回信息
比如登录接口输入用户名密码,我们需要根据用户名密码动态判断是否登录成功,返回不同的提示信息。
dynamic-mock-server支持我们添加destnation(最终路由点)来支持动态判断参数的功能。
private fun loginDestnation(destnationList : ArrayList<Destnation>) {val destnation : Destnation = Destnation()destnation.uri = "/login"destnation.destnation = "/login_success"val loginPredicate : (params : Map<String, List<String>>) -> Boolean = {val a : Boolean = (it.get("username")?.get(0) == "menshen")val b : Boolean = (it.get("password")?.get(0) == "woshildx")a && b}destnation.predicate = loginPredicatedestnation.destnation = "/login_success"destnationList.add(destnation)}
Destnation实体对应着我们刚刚配置的一个get或者post请求,只是会多了一个predicate来进行判断校验。predicate是一个返回布尔值的函数,需要开发者自己去实现,predicate接收url输入的输入参数。
predicate的输入参数为我们接口访问时输入的参数。例:http://127.0.0.1:8080/login?username=menshen&password=123456
对应的params则会有username和password两个key和对应的值,我们可以通过判断username和password是否合法,来决定是否返回login_success。本例中menshen、123456校验失败,则返回我们配置文件中定义的默认结果,否则返回login_success对应的文件内容。
浏览器里测试:http://127.0.0.1:8080/login?username=menshen&password=123456
我们会看到login faild的结果
浏览器里测试:http://127.0.0.1:8080/login?username=menshen&password=woshildx
我们会看到Welcom XXX的结果
这时我们打开login和login_success文件,你会发现这两个结果分别是预先定义在这两个文件内容中的。
六、自定义接口和参数校验配置
现在你可以通过修改mock_server_config.json 来自定义你的mock_server了。
注意修改完成后需要将文件push到手机对应的目录内。
当想要改变返回结果的时候只需要改变文件内容并重新push回手机即可,不需要重新运行项目。
Android如何自定义服务器DynamicMockServer的使用相关推荐
- 定位系统服务器,android系统定位服务器地址
android系统定位服务器地址 内容精选 换一换 将NFS文件系统挂载到Windows IIS服务器时,报错路径格式不支持,挂载失败.IIS Web服务器的物理路径错误.根据可能原因进行故障排查.如 ...
- 华为开启位置服务器,android 开启位置服务器
android 开启位置服务器 内容精选 换一换 请先在服务器所在区域购买充足的配额,具体操作请参见购买主机安全配额.购买配额后,请切换到配额所在区域对服务器开启防护.若您购买的是基础版/企业版/旗舰 ...
- Android ListView 自定义背景后 滚动时的背景变黑问题
ListView是常用的显示控件,默认背景是和系统窗口一样的透明色,如果给ListView加上背景图片,或者背景颜色时,滚动时listView会黑掉,原因是,滚动时,列表里面的view重绘时,用的依旧 ...
- android 实现自定义监听接口,Android在自定义类中实现自定义监听器方式
Android在自定义类中实现自定义监听器方式 发布时间:2020-08-31 06:19:39 来源:脚本之家 阅读:203 作者:Simon_Qi 监听器可以说是Android开发中最常用的东西之 ...
- android sqlite自定义函数,Android中自定义一个View的方法详解
本文实例讲述了Android中自定义一个View的方法.分享给大家供大家参考,具体如下: Android中自定义View的实现比较简单,无非就是继承父类,然后重载方法,即便如此,在实际编码中难免会遇到 ...
- android+自定义皮肤,android studio自定义更换皮肤详细图文教程
android studio这款app程序开发软件内也内置了多种皮肤主题,程序开发人员如果感觉一种皮肤太过单调乏味,可以选择使用软件内的其他皮肤风格,软件默认的皮肤是IntelliJ,还有黑色的Dra ...
- android 自定义搜索框edittext,Android编程自定义搜索框实现方法【附demo源码下载】...
本文实例讲述了Android编程自定义搜索框实现方法.分享给大家供大家参考,具体如下: 先来看效果图吧~ 分析:这只是模拟了一个静态数据的删除与显示 用EditText+PopupWindow+lis ...
- Android Studio自定义视图无法预览
Android Studio自定义视图没有办法预览 我想大家应该都和我一样,如果看到布局的编码的时候如果右边能够非常直观地显示出对应的视图,心里会非常舒心,像官方提供的tools命名空间就是为了这个目 ...
- 绝地求生自定义服务器租用,绝地求生自定义服务器怎么开 自定义服务器设置方法...
绝地求生自定义服务器怎么开呢?自定义服务器已经开启设置了,玩家们可以已自己的方式享受游戏,但一些玩家还不知道自定义服务器设置方法,那下面就来看下吧. 自定义服务器玩法介绍 当创建自己的自定义游戏时,你 ...
最新文章
- JavaScript 利用location对象实现跨页面传参
- linux内核 task_struct 中自旋锁的应用
- MongoDB监控项--如何使用命令得到
- Flex学习记录(一)——MXML基本知识
- 基于VUE的前端crypto-js aes加密与解密
- Spring Web Flow 入门demo(一)简单页面跳转 附源码
- 【51Nod-1100】 斜率最大(贪心)☆双排序
- redis中使用redis-dump导出、导入、还原数据实例
- linux 有趣的命令
- if vue 跳出_vue实现弹框遮罩点击其他区域弹框关闭及v-if与v-show的区别介绍
- 多元回归理论及R语言实现
- 「行业化、产业化、专业化」,解析中科曙光眼中的大数据现状和未来
- access_ok函数
- matlab 三角函数 和差化积,三角函数中的和差化积公式编辑方法
- 显卡算力排行_RTX3090 时代最新GPU选购指南:哪款显卡配得上我的炼丹炉?
- android 音量调节
- Echarts X轴类型为time时,X轴标签的细化(年月日时分秒)
- 采集微信公众号数据的思路
- win7制作ntp服务器,win7系统搭建ntp服务器的操作方法
- jenkins自动部署到tomcat/weblogic