精品欧美一区二区三区在线观看 _久久久久国色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ù)棧公眾號

av免费在线一区| 亚洲欧美自偷自拍| 91精品国产91久久久久久密臀 | 色偷偷偷亚洲综合网另类| 亚洲免费成人在线视频| heyzo高清国产精品| 久久久不卡网国产精品一区| 国产欧美最新羞羞视频在线观看| 免费一级片视频| 国产亚洲一区| 精品99999| 日本黄大片一区二区三区| 日本资源在线| 日本一区二区免费在线| 国产日韩欧美一区二区三区四区| 日韩 国产 欧美| 伊人精品一区二区三区| 亚洲成人不卡| 亚洲精品免费看| 欧美性色黄大片人与善| 亚洲av无码一区二区三区dv| 日韩国产精品久久久久久亚洲| 欧美成人精品一区二区| 亚洲性猛交xxxx乱大交| 国产不卡精品| 欧美性感一类影片在线播放| 精品无码一区二区三区爱欲| 日本电影全部在线观看网站视频| 91玉足脚交白嫩脚丫在线播放| 国产一区私人高清影院| 亚洲视频 欧美视频| 国产精品a久久久久| xvideos亚洲| 亚洲自拍偷拍图| 台湾佬综合网| 亚洲国产精品福利| 日本黄色大片在线观看| 国产一区二区三区| 欧美日韩一区精品| 成人一级片网站| а√在线天堂官网| 亚洲va国产va欧美va观看| 91免费网站视频| 美女隐私在线观看| 日本一区二区不卡视频| 欧美性天天影院| 你懂得在线网址| 成人av中文字幕| 国产富婆一区二区三区| 性生活三级视频| 国产一区二区三区黄视频 | 成人av在线网站| 1卡2卡3卡精品视频| 亚洲天堂999| 蜜桃精品在线观看| 国产精品久久综合av爱欲tv| 无码人妻丰满熟妇区bbbbxxxx| 亚洲免费激情| 国内免费精品永久在线视频| 国产精品高清在线观看| 国产视频精品免费| 国产精品久久久久无码av| 中文字幕亚洲情99在线| 亚洲av熟女国产一区二区性色| 精品freesex老太交| 伊人久久男人天堂| 国产精品情侣呻吟对白视频| 日韩欧美一区二区三区在线视频| 色爱av美腿丝袜综合粉嫩av| 97精品在线播放| 91精品国产91久久综合| 欧美国产视频日韩| 日韩精品在线不卡| 久久天堂成人| 国产精品一二区| 国产熟女一区二区三区五月婷| 国产成人免费在线观看不卡| 国产一区二区中文字幕免费看| 手机看片一区二区三区| 久久日韩粉嫩一区二区三区 | 清纯唯美亚洲综合一区| www亚洲欧美| 久久综合亚洲色hezyo国产| 亚洲狼人精品一区二区三区| 日韩免费av在线| 一二三区中文字幕| 高潮精品一区videoshd| 久久福利电影| 欧美精品videos另类| 夜夜精品视频一区二区| 欧美日韩在线视频一区二区三区| 深夜视频一区二区| 日韩精品中午字幕| 亚洲午夜福利在线观看| 91综合视频| 久久精品成人动漫| 日韩欧美高清在线观看| 蜜臀久久久久久久| 国产伦精品一区二区三区免 | 色呦呦中文字幕| 91亚洲资源网| 桥本有菜av在线| 男人av在线播放| 欧美日韩一区视频| 免费日本黄色网址| 久久久久久影院| 欧美在线xxx| 精品女同一区二区三区| 久久久天堂av| 国产成人一区二区三区别| 成人性生交大片免费观看网站| 欧美电影一区二区三区| av小说在线观看| 午夜性色一区二区三区免费视频 | 黄瓜视频免费观看在线观看www| av电影在线免费| 4438x亚洲最大成人网| 毛茸茸多毛bbb毛多视频| 亚洲高清影视| 国产精品对白刺激| 污视频软件在线观看| 亚洲欧美国产毛片在线| 国产精品久久久毛片| 香蕉久久99| 欧美激情欧美激情在线五月| 国产一区二区麻豆| 国产精品萝li| 久久久久久久少妇| 欧美日韩123| 97久久超碰福利国产精品…| 精品人妻一区二区三区含羞草| 国产精品美女久久久久av爽李琼 | 国产综合色区在线观看| 亚洲国产成人久久综合| 激情五月少妇a| 极品少妇一区二区三区精品视频| 日本不卡一区| 又黄又爽又色的视频| 亚洲国产中文在线| 久久精品99久久久久久久久 | 1234区中文字幕在线观看| 在线综合视频播放| www.5588.com毛片| 狠狠色丁香婷综合久久| 亚洲一区在线直播| 免费视频成人| 日韩一区二区三区在线播放| 国产男人搡女人免费视频| 久久久久久久久久久久久女国产乱 | 亚洲欧美日韩在线| 免费黄频在线观看| 伊人青青综合网| 亚洲xxx自由成熟| 日皮视频在线观看| 精品国产不卡一区二区三区| 精品少妇久久久久久888优播| 成人毛片视频在线观看| 国产女主播自拍| 国产精品色呦| 欧美中文字幕视频在线观看| 久色视频在线| 欧美体内she精视频| jizzjizzjizz国产| 韩国v欧美v日本v亚洲v| 国产精品自拍合集| 加勒比色老久久爱综合网| 97精品国产91久久久久久| 香蕉视频成人在线| 在线视频国内一区二区| 大胸美女被爆操| 国模一区二区三区白浆| 国产av熟女一区二区三区 | 日韩电影第一页| 一级片视频在线观看| 国产丝袜在线精品| aaa一级黄色片| 欧美特黄一区| 久久综合中文色婷婷| 向日葵视频成人app网址| 青青草97国产精品免费观看 | 动漫av免费观看| 成人羞羞动漫| 亚洲最大的免费| xxx.xxx欧美| 亚洲一区av在线播放| 中文字幕乱码人妻二区三区| 综合自拍亚洲综合图不卡区| 野战少妇38p| 视频一区在线播放| 超碰超碰超碰超碰超碰| 欧美aaaaaaaa牛牛影院| 国产日韩一区在线| 日本性爱视频在线观看| 亚洲日本欧美日韩高观看| 一级做a爱片性色毛片| 亚洲成av人片一区二区梦乃| 白白色免费视频| 国产精品亚洲成人| 亚洲国产精品毛片av不卡在线| 国产精品99视频| 蜜桃视频在线观看成人| 高清一区二区三区av| 日韩免费高清在线观看| 国产高清在线a视频大全| 亚洲品质视频自拍网| 国产欧美日韩成人| 在线欧美日韩国产| 久久久久人妻一区精品色欧美| 国产视频一区二区三区在线观看 | 久久久久高清精品| 国产xxxxhd| 久久亚洲欧美| 国产中文字幕乱人伦在线观看| 欧美在线观看视频一区| 国精产品一区二区| 美女精品视频在线| 国产美女精品视频| 欧美成人黑人| 国外色69视频在线观看| 26uuu亚洲电影在线观看| 亚洲系列中文字幕| 天堂av在线资源| 欧美tickling网站挠脚心| 怡春院在线视频| 狠狠色综合播放一区二区| 高清一区二区三区四区五区| 亚洲色图另类小说| 欧美成人aa大片| 国产精品爽爽久久久久久| 在线观看一区二区精品视频| 日韩精品1区2区| 亚洲福利一二三区| 激情五月婷婷小说| 亚洲乱码日产精品bd| 日本成人精品视频| 中文字幕精品—区二区四季| 久久精品国产亚洲AV熟女| 成a人片国产精品| 最新国产精品自拍| 国产成人三级在线观看| 亚洲区 欧美区| 国产一区二区成人久久免费影院 | 久久艹免费视频| 亚洲国产精品一区二区久久 | 法国伦理少妇愉情| 99久久婷婷国产综合精品 | 久久久久97| 国产精品一区二区三区精品 | 久久99精品久久久久久动态图 | 国产成人av资源| 一本之道在线视频| 国产成a人亚洲精品| 日韩大尺度视频| 不卡高清视频专区| 久久久久久久久免费看无码| 久久久影视传媒| 国产美女免费无遮挡| 国产日韩v精品一区二区| 免费观看a级片| 国产精品国产三级国产普通话99| 懂色av粉嫩av浪潮av| 一区在线中文字幕| 国产一区二区视频在线观看免费| 一区二区三区四区在线| 国产精久久久久久| 欧美性猛交xxxx富婆弯腰| 色老头一区二区| 亚洲深爱激情| 国精产品一区一区三区有限在线| 羞羞网站在线看| 国产69精品久久久久9| 性爽视频在线| 国产精品r级在线| 一区在线不卡| 国产伦理久久久| 精品一区欧美| 2025韩国大尺度电影| 国内揄拍国内精品久久| 免费欧美一级视频| 麻豆视频一区二区| 亚洲图片欧美另类| 久久久91精品国产一区二区三区| 一本在线免费视频| 亚洲影院理伦片| 亚洲乱码国产乱码精品| 6080亚洲精品一区二区| 婷婷在线免费观看| 在线免费观看羞羞视频一区二区| av中文字幕在线观看| 97精品一区二区视频在线观看| 欧洲成人一区| 亚洲精品免费av| 免费电影一区二区三区| 中文字幕色呦呦| 久久夜色精品| 性xxxxxxxxx| 国产午夜精品理论片a级大结局| 中文字幕无码日韩专区免费| 福利微拍一区二区| 国产v在线观看| 亚洲天堂日韩电影| 丁香高清在线观看完整电影视频 | 波多野结衣黄色网址| 欧美一区二区三区日韩视频| 欧洲一级在线观看| 欧美高清视频在线播放| 成人1区2区| 国偷自产av一区二区三区小尤奈| 欧美r级电影| 69堂免费视频| 高清不卡一二三区| 无码黑人精品一区二区| 色国产精品一区在线观看| 高清乱码毛片入口| 久久精品91久久久久久再现| 蜜桃精品在线| 精品一区久久久| 欧美在线免费| 中文字幕第88页| 91玉足脚交白嫩脚丫在线播放| 国产成人无码一二三区视频| 只有精品亚洲| 国产精品日韩欧美一区二区| 亚洲国产一区二区在线观看| 国产精品igao| 久久久蜜桃精品| 日韩无码精品一区二区三区| 欧美一卡2卡三卡4卡5免费| a√资源在线| 国产成人精品电影| 九九视频免费观看视频精品 | 久久久久久久久免费视频| 国产97在线亚洲| 天堂av一区二区三区在线播放| 日本wwwcom| 成人福利视频在线| 久久久www成人免费毛片| 欧美一区二区视频网站| 黄色网址在线免费| 成人中文字幕+乱码+中文字幕| 欧美日韩水蜜桃| 一区二区三区入口| 久久久精品国产99久久精品芒果| 天天干在线播放| 亚洲美女又黄又爽在线观看| 蜜桃视频在线观看免费视频| 久久福利电影| 狂野欧美一区| 夜夜春很很躁夜夜躁| 欧美色倩网站大全免费| 午夜国产福利在线| 成人妇女免费播放久久久| 99re6这里只有精品| 中文字幕色网站| 亚洲免费观看高清| www.亚洲欧美| 97精品一区二区视频在线观看| 啪啪国产精品| 国产第一页视频| 国产精品天干天干在观线| 在线观看日韩一区二区| 久久综合伊人77777| 亚洲视频国产精品| 青青草精品视频在线| 91看片淫黄大片一级在线观看| wwwwww在线观看| 久久国内精品一国内精品| 欧美日韩午夜电影网| 三上悠亚久久精品| 国产亚洲一区字幕| 国产精品视频久久久久久| 欧美高清在线观看| 免费看成人人体视频| 妓院一钑片免看黄大片| 国产精品免费丝袜| 成 人 黄 色 片 在线播放| 91精品国产色综合久久不卡98| 神马久久一区二区三区| 女同激情久久av久久| 亚洲国产精品综合小说图片区| 毛片在线免费| 成人有码视频在线播放| 一区二区三区福利| 91性高湖久久久久久久久_久久99| 久久福利影院| www日本在线观看| 91久久国产最好的精华液| 久草免费在线| 久久精品国产一区二区三区日韩| 奇米777欧美一区二区| 久久久久久福利| 国产一区二区三区视频在线观看| 国产精品白丝久久av网站| 你懂的av在线| 中文字幕日韩av资源站| 天堂在线视频观看| 成人精品在线观看| 久久国产一二区| 国产va在线播放| 在线观看久久av|