精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

多狀態(tài)頁面中的 Mock 方案

開發(fā) 前端
使用的時候,點選每一個狀態(tài),將狀態(tài)值寫入 localStorage 當中,刷新頁面。axios 請求時檢測是否有 localStorage 配置,有的話取出對應(yīng)值,拼接到 YAPI mock 接口請求當中,獲取到 mock 數(shù)據(jù),然后頁面就是 mock 數(shù)據(jù)渲染出來的了。

我們有時候會遇到一個業(yè)務(wù)頁面存在很多個狀態(tài),甚至子狀態(tài),比如訂單詳情就是其中的典型,涉及從訂單創(chuàng)建到訂單結(jié)束,以及售后等流程。維護起來每個狀態(tài)對應(yīng)一份數(shù)據(jù),雖然我們 QA 提供了數(shù)據(jù)構(gòu)造平臺,但構(gòu)造一份對應(yīng)狀態(tài)的數(shù)據(jù)還是需要花費不少時間,而且串行流程一旦出錯的話只能重新來一遍。 

后期維護階段也不容易構(gòu)造對應(yīng)狀態(tài)的數(shù)據(jù),導(dǎo)致排查頁面問題比較耗時。

另外一個問題就是從頭熟悉業(yè)務(wù)的話成本比較高,如果有一個直觀的頁面能夠看到頁面樣式會好很多。

以上就是設(shè)計一個多狀態(tài) mock 工具初衷,讓開發(fā)者在頁面中直接選擇對應(yīng)狀態(tài),就可以切換到對應(yīng)頁面。

技術(shù)選型

目前轉(zhuǎn)轉(zhuǎn) app 測試包,webview 頁面氣泡浮層已經(jīng)有兩個了——客戶端工具和 eruda,再多就亂套了,所以最好集成在現(xiàn)有的工具基礎(chǔ)上。客戶端部分功能我們接觸不到也不了解,在現(xiàn)有條件下只有 eruda 可用。

Eruda 是一個很強大的前端頁面調(diào)試工具庫,我們客戶端 webview 也內(nèi)置了,在測試包中可以很方便的借助 eruda 調(diào)試頁面,觀察日志。同時 eruda 也支持插件,通過插件來擴展 eruda 的功能。我們的工具就基于 eruda 插件來實現(xiàn)。

實現(xiàn)效果預(yù)覽:

圖片

插件預(yù)覽圖

總體流程如下:

圖片

插件流程

整個流程大概三個部分組成

  • 業(yè)務(wù)邏輯改造
  • Eruda 插件
  • Mock 數(shù)據(jù)整理

業(yè)務(wù)邏輯改造

首先要實現(xiàn)這樣一個方案核心依賴于業(yè)務(wù)使用的請求庫,以及是否能夠?qū)φ埱髱爝M行修改。

我們業(yè)務(wù)使用的基于 axios 的請求庫,其暴露了實際發(fā)送請求的 adapter 邏輯,我們可以基于 adapter 來實現(xiàn)接口方法的攔截。

圖片

axios adapter

借助 axios-mock-adapter[1],可以很方便的實現(xiàn)我們的需求。

import { axiosInstance } from '@zz/fetch';
import MockAdapter from 'axios-mock-adapter';

export const mock = new MockAdapter(axiosInstance)

try {
// 借助 localstorage 實現(xiàn) eruda 插件和 axios-mock-adapter 通信
const mockReqConf = JSON.parse(localStorage.getItem('_mock_req'))
if (mockReqConf && mockReqConf.mockId) {
mock.onGet(api.getOrderDetail).reply(config {
// console.log('mock api', api.getOrderDetail)
return axiosInstance.get('https://mockrepository.zhuanzhuan.com/orderdetail?mockId=' + mockReqConf.mockId)
})
}

mock.onAny()
.passThrough()

const isProduction = process.env.NODE_ENV === 'production'
if (isProduction || (mockReqConf && mockReqConf.mockId === '')) {
// sessionStorage 實現(xiàn)開關(guān),如果沒有此配置,就重置設(shè)置的 mock 攔截
if (!sessionStorage.getItem('mock-adapter')) {
mock.restore()
}
}
} catch (error) {
console.log('mock adapter config error', error)
}

Eruda 插件

插件的目的是實現(xiàn)兩個功能,一個是總開關(guān),另一個是 mock 數(shù)據(jù)的展示和切換。

總開關(guān)借助 sessionStorage,webview 關(guān)閉 sessionStorage 數(shù)據(jù)清除,這樣避免了一進入頁面就是 mock 數(shù)據(jù),防止忘記關(guān)閉以及頻繁操作,需要的時候才打開。

Mock 數(shù)據(jù)的展示配置在一個配置文件中,公司有統(tǒng)一的配置中心,基于攜程 Apollo 實現(xiàn)。這個文件的作用是映射對應(yīng)的狀態(tài)和 mock 數(shù)據(jù)來源,來源是統(tǒng)一的,所以只用參數(shù)區(qū)分即可。

示例如下:

[
{
"id": "/order/detail",
"list": [
{
"title": "正向流程",
"list": [
{
"title": "下單待發(fā)貨",
"id": "1-0-1"
},
{
"title": "寄賣下單",
"id": "1-1-0"
},
{
"title": "發(fā)貨運輸中",
"id": "1-2-0"
},
{
"title": "平臺質(zhì)檢",
"id": "1-3-0"
}
]
},
{
"title": "逆向流程",
"list": [
{
"title": "申請退回-退回中",
"id": "2-3-2"
}
]
}
]
}
]

??id?? 用于標識當前頁面鏈接,是否有配置 mock 數(shù)據(jù),所以也支持配置多個頁面。

Eruda 插件的實現(xiàn)參考 eruda 官方文檔。

  • ?Eruda 如何寫插件[2] https://github.com/liriliri/eruda/blob/master/doc/PLUGIN.md
  • Eruda 工具庫[3] https://licia.liriliri.io/docs_cn.html

Eruda 插件寫法類比較像一個小的模板庫,eruda 提供了插件模板,綁定事件方式類似于 jQuery 語法,eruda 提供的 licia 工具庫均有對應(yīng)方法,參考即可。

Eruda 插件示例代碼:

(function(root, factory) {
if (typeof define === 'function' && define.amd) {
define([], factory);
} else if (typeof module === 'object' && module.exports) {
module.exports = factory();
} else {
root.erudaPlugin = factory();
}
})(this, function() {
return function(eruda) {
var Tool = eruda.Tool,
util = eruda.util;

var Plugin = Tool.extend({
name: 'plugin',
init: function($el) {
this.callSuper(Tool, 'init', arguments);
this._style = util.evalCss(
[
'.eruda-dev-tools .eruda-tools .eruda-plugin {padding: 10px;}',
'.eruda-tip {padding: 10px; background: #fff; color: #263238;}'
].join('.eruda-dev-tools .eruda-tools .eruda-plugin ')
);
$el.html(
'<div class="eruda-tip">Put whatever you want here:)</div>'
);
},
show: function() {
this.callSuper(Tool, 'show', arguments);
},
hide: function() {
this.callSuper(Tool, 'hide', arguments);
},
destroy: function() {
this.callSuper(Tool, 'destroy', arguments);
util.evalCss.remove(this._style);
}
});

return new Plugin();
};
});

Mock 數(shù)據(jù)整理

這一部分其實是比較耗費體力的工作。需要整理每一個狀態(tài)的數(shù)據(jù),存儲起來。前面提到公司提供的一個接口平臺,基于去哪兒 YAPI 搭建,其提供了每個接口 mock 能力,我們添加 mock 數(shù)據(jù)即可。前面配置文件中每一個狀態(tài)下的 id 其實就是 mock 數(shù)據(jù)的參數(shù)。

使用的時候,點選每一個狀態(tài),將狀態(tài)值寫入 localStorage 當中,刷新頁面。axios 請求時檢測是否有 localStorage 配置,有的話取出對應(yīng)值,拼接到 YAPI mock 接口請求當中,獲取到 mock 數(shù)據(jù),然后頁面就是 mock 數(shù)據(jù)渲染出來的了。

初步嘗試后,可以讓我們在頁面開發(fā)過程中可以很方便得查看不同頁面下的頁面展現(xiàn),相比于之前的要么是查詢線上數(shù)據(jù),要么是通過數(shù)據(jù)構(gòu)造一步一步找到對應(yīng)狀態(tài),都大大節(jié)省了時間,提升了效率。

同時對于產(chǎn)品和設(shè)計同學,也可以快速的找對對應(yīng)頁面的樣子,方便產(chǎn)品對現(xiàn)有頁面進行調(diào)整,設(shè)計同學對頁面還原度進行檢查等等。

不足之處也有,就是數(shù)據(jù)的維護,現(xiàn)在每一個狀態(tài)下存儲的都是一份完整的數(shù)據(jù),如果某一部分調(diào)整了的話,那么所有的數(shù)據(jù)都要修改,數(shù)據(jù)越多,維護成本相對來說也越高。

以上是基于現(xiàn)有基礎(chǔ)能力搭建出來的一個簡單工具,當然還有更多改進空間,請多指教。

參考資料

?[1]axios-mock-adapter: https://github.com/ctimmerm/axios-mock-adapter

[2]Eruda 如何寫插件: https://github.com/liriliri/eruda/blob/master/doc/PLUGIN.md

[3]Eruda 工具庫: https://licia.liriliri.io/docs_cn.html


責任編輯:武曉燕 來源: 大轉(zhuǎn)轉(zhuǎn)FE
相關(guān)推薦

2023-03-06 07:35:30

狀態(tài)機工具訂單狀態(tài)

2024-04-30 11:14:19

KubernetesReplicaSet數(shù)量

2022-01-12 11:55:43

Kubernetes多集群Linux

2022-04-13 11:18:48

滲透測試Mock

2024-07-29 12:12:59

2009-12-28 16:45:31

WPF窗體

2025-02-18 16:27:01

2022-07-11 09:46:43

Kubernetes開源Linux

2013-04-17 10:54:18

Windows PhoWindows Pho

2020-06-30 08:41:38

HTTP無狀態(tài)協(xié)議

2015-05-14 14:51:58

OpenStack N系統(tǒng)狀態(tài)多租戶

2015-07-15 14:38:54

H5移動適配

2022-07-24 21:11:19

KubernetesLinux

2022-08-27 21:37:57

PrometheusRedis?監(jiān)控

2015-07-15 12:30:37

移動端H5高清多屏

2009-07-02 13:36:24

動態(tài)頁面JSP技術(shù)

2024-01-08 09:36:47

管理庫代碼

2025-03-25 08:20:00

Linux虛擬內(nèi)存系統(tǒng)

2009-07-20 17:21:43

Session狀態(tài)ASP.NET

2024-12-20 19:38:01

ToB業(yè)務(wù)狀態(tài)轉(zhuǎn)換
點贊
收藏

51CTO技術(shù)棧公眾號

中文在线一区二区三区| 亚洲精品福利电影| 久久福利影视| 色偷偷偷综合中文字幕;dd| 久色视频在线播放| 熟妇高潮一区二区三区| 亚洲免费高清| 91久久精品一区二区三区| 国产高清在线一区| 欧美日韩成人免费观看| 亚洲欧洲色图| 在线播放91灌醉迷j高跟美女| 国产女人18毛片| 欧美香蕉爽爽人人爽| 丝袜av一区| 宅男噜噜噜66一区二区66| 国产精品专区在线| 国产成人综合欧美精品久久| 日韩影视在线观看| 69堂精品视频| av无码久久久久久不卡网站| 黄色在线免费观看大全| 狠狠做六月爱婷婷综合aⅴ| 欧美精品成人一区二区三区四区| 亚洲精品二区| 午夜成人免费影院| 亚洲影音先锋| 欧美精品九九久久| 欧洲一级黄色片| 欧美另类中文字幕| 成人h精品动漫一区二区三区| 国产精品wwww| 91浏览器在线观看| 全球中文成人在线| 激情久久av一区av二区av三区| 高清欧美性猛交xxxx黑人猛交| 91香蕉视频导航| 三级小视频在线观看| 国内精品视频一区二区三区八戒| 欧洲午夜精品久久久| 久久久久久蜜桃| 婷婷丁香综合| 在线观看中文字幕亚洲| 特大黑人巨人吊xxxx| 亚洲日本中文| 在线看国产一区| 干日本少妇首页| 黄色漫画在线免费看| 中文字幕成人在线观看| 欧美性天天影院| 色鬼7777久久| 久久看人人爽人人| 蜜桃狠狠色伊人亚洲综合网站| 日本视频www色| 亚洲成人直播| 欧美精品videos另类日本| 小泽玛利亚一区二区免费| 成人av资源电影网站| 亚洲午夜久久久影院| 亚洲欧美在线不卡| 欧美精品中文| 色综合天天综合网天天狠天天 | 久久精品青青大伊人av| 日本黄色小视频在线观看| 日韩欧美一区二区三区在线观看| 欧美日在线观看| 欧美三级一级片| 国产羞羞视频在线播放| 日本最新不卡在线| 国产成人精品久久久| 日韩三级久久久| 欧美日韩一区二区三区视频播放| 国产亚洲精品91在线| 国内精品卡一卡二卡三| 日韩免费视频| 久久色精品视频| 少妇影院在线观看| 国产不卡精品在线| 日韩一区二区免费高清| 国产免费色视频| h片在线免费观看| 成人看片黄a免费看在线| www.一区二区三区| 欧美 日韩 人妻 高清 中文| 成人亚洲一区二区一| 国产福利久久| 免费在线视频你懂得| 久久中文字幕电影| 亚洲一区二区三区涩| 亚洲av无码国产综合专区| 成人午夜av电影| 不卡一卡2卡3卡4卡精品在| 先锋av资源站| 中国av一区二区三区| 亚洲激情电影在线| 国产一线二线在线观看| 色噜噜狠狠色综合欧洲selulu| www.中文字幕在线| 激情久久99| 亚洲成色777777在线观看影院| 成人手机在线免费视频| 不卡在线一区二区| 7m第一福利500精品视频| 国产又大又黄又粗| 国产精品资源站在线| 欧美一级片在线播放| 亚洲综合免费视频| av动漫一区二区| 中文字幕一区二区三区最新| www精品国产| 久久午夜老司机| 翔田千里亚洲一二三区| 国产丝袜精品丝袜| 欧美日韩一区二区欧美激情| 国产精品扒开腿做爽爽爽a片唱戏 亚洲av成人精品一区二区三区 | 亚洲一区国产| 成人写真视频福利网| 桃花色综合影院| 高清不卡一区二区在线| 日本欧洲国产一区二区| 女同一区二区免费aⅴ| 欧美私人免费视频| 无码成人精品区在线观看| 色婷婷亚洲mv天堂mv在影片| 97超级碰碰碰| 亚洲AV无码精品自拍| 亚洲欧洲日韩一区二区三区| 美脚丝袜一区二区三区在线观看| 91网在线播放| 国产精品免费观看视频| 欧美一级爱爱| 8x8ⅹ拨牐拨牐拨牐在线观看| 欧美日韩日本视频| 国产成人精品无码片区在线| 综合久久婷婷| 成人a视频在线观看| 国产在线视频网| 亚洲动漫第一页| aaaaa黄色片| 久久中文视频| 国产欧美 在线欧美| 男人天堂手机在线观看| 亚洲最色的网站| 久久精品一二三四| 亚洲国产一区二区在线观看 | www欧美在线观看| 中文字幕精品久久| 樱花视频在线免费观看| 六月丁香综合| 精品乱色一区二区中文字幕| 波多野结衣在线高清| 精品国产露脸精彩对白| 久草视频在线免费看| 国产成人午夜精品影院观看视频| 91精品国产吴梦梦| 精品三级久久久| 日韩在线视频一区| 国产乱子伦精品无码码专区| 国产精品久久久久久妇女6080 | 色婷婷国产精品综合在线观看| 久久久久亚洲AV成人网人人小说| 欧美日一区二区在线观看 | 久久综合伊人77777| 国产三级按摩推拿按摩| 一区二区三区中文在线观看| 综合国产精品久久久| 亚洲在线资源| 超碰97人人做人人爱少妇| 岳乳丰满一区二区三区| 亚洲视频一区二区在线观看| 色婷婷综合网站| 色999日韩| 2022国产精品| 岛国在线视频网站| 亚洲天堂av在线播放| 日本japanese极品少妇| 亚洲视频日本| 欧美二级三级| 日韩欧美专区| 日韩亚洲精品视频| 国产精品一区二区人人爽| 综合自拍亚洲综合图不卡区| 色悠悠在线视频| 久久尤物视频| 99国产超薄丝袜足j在线观看| 国产乱妇乱子在线播视频播放网站| 精品日韩一区二区三区| 在线免费黄色av| 亚洲色图在线看| 亚洲激情 欧美| 日韩不卡一区二区三区| 成人毛片100部免费看| 国偷自产视频一区二区久| 国产精品wwwwww| 日本资源在线| 亚洲欧美日韩区| 精品91久久久| 欧美国产精品中文字幕| 成人三级做爰av| 亚洲欧美日韩视频二区| 爱爱爱视频网站| 性欧美lx╳lx╳| 亚洲a级在线观看| 久久91导航| 欧美成aaa人片在线观看蜜臀| 欧美18xxxxx| 日韩精品专区在线影院观看| 亚洲精品国产精品乱码| 亚洲视频香蕉人妖| 亚洲人成人无码网www国产| 国产精品一区久久久久| 丰满少妇被猛烈进入高清播放| 中文字幕午夜精品一区二区三区| 日本免费一区二区三区| 中文字幕日韩在线| 91超碰中文字幕久久精品| 乱人伦中文视频在线| 亚洲丝袜在线视频| 五月天丁香视频| 欧美精品日韩综合在线| 国产黄色免费视频| 精品国产31久久久久久| 欧美成人综合色| 国产精品久久精品日日| 欧美深性狂猛ⅹxxx深喉| 国产精品影视在线| 久久人人爽av| 日本美女视频一区二区| 欧美日韩中文在线视频| 一本色道久久综合亚洲精品不卡 | 亚洲二区免费| 九九久久九九久久| 欧洲精品一区| 国产自产在线视频一区| 草草视频在线一区二区| 国产精品亚洲综合天堂夜夜| 亚洲www免费| 日本精品免费一区二区三区| 岛国av免费在线观看| 久久久久久亚洲精品不卡| 午夜av在线播放| 久久福利网址导航| av免费在线观看网址| 不卡毛片在线看| 国内精品久久久久久野外| 久久精品中文字幕免费mv| 日本黄色片在线观看| 在线视频亚洲欧美| av资源在线观看免费高清| 亚洲图片欧美一区| 欧美 日韩 国产 一区二区三区| 国产精品色噜噜| 欧美88888| 自拍偷拍国产精品| 婷婷伊人五月天| 亚洲激情中文1区| 欧美日韩在线视频免费| 伊人色综合久久天天人手人婷| 久久久久久视频| 亚洲精品日产精品乱码不卡| 欧美交换国产一区内射| 亚洲嫩草精品久久| 久草视频在线免费看| 午夜日韩在线观看| 天天干天天干天天| 欧美日韩国产一区二区三区| 无码人妻精品一区二区三区不卡| 91激情五月电影| 91麻豆成人精品国产| 欧美精品丝袜久久久中文字幕| 国产jzjzjz丝袜老师水多| 日韩一区二区电影在线| 五月婷婷在线观看视频| 亚洲欧美成人一区二区在线电影| 深夜福利免费在线观看| 国产视频一区在线| av基地在线| 欧美肥老妇视频| 自由日本语热亚洲人| 国产裸体写真av一区二区| 日韩在线精品强乱中文字幕| yy111111少妇影院日韩夜片| 国产精品欧美三级在线观看| 致1999电视剧免费观看策驰影院| 欧美区国产区| 无码aⅴ精品一区二区三区浪潮| 免费人成精品欧美精品| jjzz黄色片| 久久精品欧美日韩精品| 免费成人黄色大片| 国产成人精品1024| 一级黄色性视频| 亚洲激情在线播放| 国产精品第5页| 91精品国产色综合久久不卡蜜臀 | 91嫩草|国产丨精品入口| 一区二区在线观看视频在线观看| 国产又黄又爽又色| 777午夜精品视频在线播放| 五十路在线视频| 免费97视频在线精品国自产拍| 天堂а√在线最新版中文在线| 日韩美女在线看| 136国产福利精品导航网址应用| 欧美日韩综合久久| 亚洲乱码免费伦视频| 国产熟女高潮视频| 懂色av一区二区三区免费看| 蜜桃传媒一区二区亚洲| 2023国产精品视频| 加勒比av在线播放| 欧美日韩一区二区三区在线| 五月婷婷综合久久| 久久99久久99精品免观看粉嫩| 免费在线看黄网站| 97婷婷大伊香蕉精品视频| 99亚洲男女激情在线观看| 免费在线成人av| 欧美va天堂在线| 久久久久久三级| 国产xxx精品视频大全| 永久av免费网站| 日本精品免费观看高清观看| 日本精品999| 欧美xxxx做受欧美.88| 国外成人福利视频| 日韩hmxxxx| 性娇小13――14欧美| 性色av蜜臀av浪潮av老女人| 亚洲三级在线免费| 一区精品在线观看| 亚洲日本成人网| 97人人在线视频| 成人看片在线| 午夜欧美精品久久久久久久| 拔插拔插华人永久免费| 国产精品成人在线观看| 天堂网一区二区| 精品中文字幕久久久久久| 55av亚洲| 亚洲综合中文字幕68页| 91精品久久久久久久蜜月| 天天操狠狠操夜夜操| 国产午夜精品一区二区三区四区 | 韩国一区二区三区在线观看| 国产成人在线综合| 中文字幕在线观看不卡视频| 中文字幕一区二区在线视频| 中文字幕亚洲欧美日韩2019| 高清av一区| 欧美另类一区| 可以看av的网站久久看| 天天操天天干天天操天天干| 在线观看日韩电影| 成人欧美亚洲| 国产欧美精品xxxx另类| 亚洲成av人电影| 日本r级电影在线观看| 一级女性全黄久久生活片免费| 亚洲婷婷久久综合| 色综合亚洲精品激情狠狠| 四虎影视精品永久在线观看| 懂色av粉嫩av蜜臀av| 老汉av免费一区二区三区| 欧美一级特黄高清视频| 在线91免费看| 婷婷色在线资源| 成人免费在线看片| 1024日韩| 午夜精产品一区二区在线观看的| 欧美日韩综合色| 色网在线观看| 国产伦精品一区二区三区四区免费 | 欧美精选一区二区| dy888亚洲精品一区二区三区| 成人动漫在线视频| 亚洲大胆在线| 国产精品久久免费观看| 欧美精选在线播放| 草草在线观看| 亚洲欧洲精品在线| 国产aⅴ精品一区二区三区色成熟| 国产在线成人精品午夜| 亚洲另类xxxx| 国产美女视频一区二区| 国产人妻777人伦精品hd| 中文字幕av一区二区三区免费看| 一级片在线免费观看视频| 欧美大片第1页| 日韩啪啪网站| 91女神在线观看| 亚洲va欧美va国产va天堂影院| 成人在线免费电影| 99久久一区三区四区免费| 久久激情综合| 欧美日韩激情在线观看| 国产性色av一区二区| 97久久精品| 中国黄色片一级| 精品久久久久久中文字幕|