├── .DS_Store
├── .gitignore
├── .nojekyll
├── README.md
├── _coverpage.md
├── _navbar.md
├── _sidebar.md
├── about
├── README.md
├── _sidebar.md
├── quesion.md
├── team.md
├── version.md
└── video.md
├── application
├── README.md
├── _sidebar.md
├── code.md
├── ete.md
├── example.md
├── plugin.md
└── ui.md
├── build.jpeg
├── docs
├── _config.yml
└── index.md
├── google490069ebac017973.html
├── img
├── .DS_Store
├── build.jpeg
├── chrome.png
├── chrome
│ ├── .DS_Store
│ ├── chrome01.png
│ ├── chrome02.png
│ ├── chrome03.png
│ ├── chrome04.jpeg
│ └── chrome05.jpeg
├── dingding
│ ├── ding01.jpeg
│ ├── ding02.jpeg
│ ├── ding03.jpeg
│ ├── ding04.jpeg
│ ├── ding05.jpeg
│ ├── ding06.jpeg
│ ├── ding07.jpeg
│ ├── ding08.jpeg
│ └── ding09.jpeg
├── ete
│ ├── .DS_Store
│ ├── ete01.jpeg
│ ├── ete02.jpeg
│ ├── ete03.jpeg
│ ├── ete04.jpeg
│ ├── ete06.jpeg
│ ├── ete07.jpeg
│ ├── ete08.jpeg
│ ├── ete09.jpeg
│ ├── ete10.jpeg
│ ├── ete11.jpeg
│ ├── ete13.png
│ ├── ete14.jpeg
│ ├── ete15.jpeg
│ ├── ete16.jpeg
│ ├── ete17.jpeg
│ ├── ete18.jpeg
│ ├── ete19.jpeg
│ ├── ete20.jpeg
│ ├── ete21.png
│ ├── ete22.jpeg
│ ├── ete23.jpeg
│ ├── ete24.jpeg
│ ├── ete25.jpeg
│ ├── ete25.jpg
│ ├── ete26.jpeg
│ ├── ete27.jpeg
│ ├── ete28.jpeg
│ ├── ete29.jpeg
│ ├── ete30.jpeg
│ ├── ete30.jpg
│ ├── ete31.jpeg
│ ├── ete32.jpeg
│ ├── ete33.jpeg
│ ├── ete34.jpeg
│ ├── ete35.jpeg
│ ├── ete36.jpeg
│ ├── ete37.jpeg
│ └── ete38.jpeg
├── etereport.jpeg
├── etereslist.jpeg
├── etest.png
├── etetest.png
├── feishu
│ ├── 001.jpeg
│ ├── 002.jpeg
│ └── 003.jpeg
├── group
│ ├── group01.jpeg
│ ├── group02.jpeg
│ └── group03.jpeg
├── home.jpeg
├── icon.ico
├── logo.jpg
├── logo.png
├── logo1.jpg
├── logo3.png
├── plugin
│ ├── .DS_Store
│ ├── ab.png
│ ├── api.jpeg
│ └── ete.jpeg
├── sgbfyxr.png
├── task.jpeg
├── task
│ ├── task01.jpeg
│ └── task02.jpeg
├── ui.png
├── ui
│ ├── .DS_Store
│ ├── 01.png
│ ├── 02.png
│ ├── 03.png
│ ├── 04.png
│ ├── 05.png
│ ├── 06.png
│ ├── 07.png
│ ├── 08.png
│ ├── 09.png
│ ├── 10.png
│ ├── 11.png
│ └── 12.png
├── uires.png
├── wx.jpg
└── 截屏2021-08-13 下午10.53.16.png
├── index.css
├── index.html
├── lib
├── docsify-copy-code.min.js
├── docsify-pagination.min.js
├── docsify.min.js
├── emoji.js
├── gitalk.css
├── gitalk.min.js
├── index.js
├── prism-bash.js
├── search.js
├── version.json
└── vue.css
└── package.json
/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/.DS_Store
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Created by https://www.gitignore.io/api/node
2 | # Edit at https://www.gitignore.io/?templates=node
3 |
4 | ### Node ###
5 | # Logs
6 | logs
7 | *.log
8 | npm-debug.log*
9 | yarn-debug.log*
10 | yarn-error.log*
11 | lerna-debug.log*
12 |
13 | # Diagnostic reports (https://nodejs.org/api/report.html)
14 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
15 |
16 | # Runtime data
17 | pids
18 | *.pid
19 | *.seed
20 | *.pid.lock
21 |
22 | # Directory for instrumented libs generated by jscoverage/JSCover
23 | lib-cov
24 |
25 | # Coverage directory used by tools like istanbul
26 | coverage
27 | *.lcov
28 |
29 | # nyc test coverage
30 | .nyc_output
31 |
32 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
33 | .grunt
34 |
35 | # Bower dependency directory (https://bower.io/)
36 | bower_components
37 |
38 | # node-waf configuration
39 | .lock-wscript
40 |
41 | # Compiled binary addons (https://nodejs.org/api/addons.html)
42 | build/Release
43 |
44 | # Dependency directories
45 | node_modules/
46 | jspm_packages/
47 |
48 | # TypeScript v1 declaration files
49 | typings/
50 |
51 | # TypeScript cache
52 | *.tsbuildinfo
53 |
54 | # Optional npm cache directory
55 | .npm
56 |
57 | # Optional eslint cache
58 | .eslintcache
59 |
60 | # Optional REPL history
61 | .node_repl_history
62 |
63 | # Output of 'npm pack'
64 | *.tgz
65 |
66 | # Yarn Integrity file
67 | .yarn-integrity
68 |
69 | # parcel-bundler cache (https://parceljs.org/)
70 | .cache
71 |
72 | # next.js build output
73 | .next
74 |
75 | # nuxt.js build output
76 | .nuxt
77 |
78 | # vuepress build output
79 | .vuepress/dist
80 |
81 | # Serverless directories
82 | .serverless/
83 |
84 | # FuseBox cache
85 | .fusebox/
86 |
87 | # DynamoDB Local files
88 | .dynamodb/
89 |
90 | # End of https://www.gitignore.io/api/node
91 | /.idea/.gitignore
92 | /.idea/inspectionProfiles/Project_Default.xml
93 | /.idea/its-cmp-web.iml
94 | /.idea/misc.xml
95 | /.idea/modules.xml
96 | /.idea/vcs.xml
97 | /src/its-cmp/package-lock.json
98 |
--------------------------------------------------------------------------------
/.nojekyll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/.nojekyll
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | # eTestV1.2.1
5 |
6 | > 一个简单易用的集成测试框架
7 |
8 | - **0 代码,自动化测试**
9 | - **完善的测试报告**
10 | - **强大的扩展能力**
11 | - **自动化运行定时任务以及测试结果推送机制**
12 |
13 |
14 | 1. [下载链接 🔗](https://github.com/alltheblue/docs/releases)
15 | 2. [官网链接 🔗](https://alltheblue.github.io/docs/#/application/example)
16 | 3. [视频链接 🔗](https://www.bilibili.com/video/BV13P411f7pk/?vd_source=6b8d8a92f183f64ff070132f852c206f)
17 | 4. [国内镜像 gitree 🔗 ](https://xflihaibo.gitee.io/e-test/#/)
18 |
19 |
20 | 加开发者微信,进群和小伙伴一起探索eTest,学习不在孤单
21 |
22 |
23 |
--------------------------------------------------------------------------------
/_coverpage.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | # eTestV_1.2.0
4 |
5 | > 一个简单易用的集成测试框架
6 |
7 | [下载](https://github.com/alltheblue/docs/releases)
8 | [Get Started](https://alltheblue.github.io/docs/#/application/example)
9 |
--------------------------------------------------------------------------------
/_navbar.md:
--------------------------------------------------------------------------------
1 | - [文档](/application/)
2 | - [版本](/about/)
3 | - [视频教程](/about/video.md)
4 | - [社区](/about/quesion.md)
5 | - [国内镜像](https://xflihaibo.gitee.io/e-test/#/)
6 | - [GitHub](https://github.com/alltheblue/docs)
7 |
--------------------------------------------------------------------------------
/_sidebar.md:
--------------------------------------------------------------------------------
1 | - [eTest](README.md)
2 | - [快速开始](./application/example.md)
3 | - [UI](./application/ui.md)
4 | - [ETE](./application/ete.md)
5 | - [扩展管理](./application/plugin.md)
6 | - [错误信息列表](./application/code.md)
--------------------------------------------------------------------------------
/about/README.md:
--------------------------------------------------------------------------------
1 | # 系统更新信息
2 |
3 | ### eTest自动化测试工具(v1.2.1) &chrome-plugin(v1.3.6)
4 |
5 | 1. 解决无外网访问的情况下,工具按钮图标不显示问题
6 | 2. 优化修改已知问题
7 |
8 | ### eTest自动化测试工具v1.2.0 大版本迭代更新 &chrome-plugin(v1.3.6)
9 |
10 | 1. 支持git 版本管理 ,支持团队维护测试用例
11 | 2. 修复已知bug
12 |
13 | **注意**: 本次版本迭代不支持老版本项目,如果安装新版本,需要把老版本的项目导出迁移到新版本,新老版本相互独立,不受影响,请大家尽量切换到新版本,体验新功能,测试脚本,结构也不受影响
14 |
15 | ### eTest自动化测试工具v1.1.29 &chrome-plugin(v1.3.6)
16 |
17 | 1. 支持文件上传功能
18 | 2. 支持mock请求返回值
19 |
20 | ### eTest自动化测试工具v1.1.28 &chrome-plugin(v1.3.6)
21 |
22 | 1. 修改windows 导入问题
23 | 2. 部分图标不显示问题
24 | 3. 环境变量不生效问题
25 | 4. 支持接口返回值校验
26 | 5. 暴露文件路径
27 |
28 | ### eTest自动化测试工具v1.1.27 &chrome-plugin(v1.3.6)
29 |
30 | 1. 支持 Microsoft Edge 浏览器自动化测试
31 | 2. 优化测试结果点击图片放大
32 | 3. 优化eTest交互
33 |
34 |
35 | ### eTest自动化测试工具(v1.1.26) &chrome-plugin(v1.3.6)
36 |
37 | 1. windows 上传脚本优化显示名称
38 | 2. 支持断言失败停止任务执行依旧生成测试报告
39 | 3. 修复定时任务执行ete任务
40 | 4. 完善内置缓存脚本维护方式,缓存第一个分组内的脚本参数
41 | 5. 优化交互 新建项目、ete新建分组支持回车快捷键
42 |
43 |
44 | ### eTest自动化测试工具(v1.1.25) &chrome-plugin(v1.3.6)
45 |
46 | 1. 支持断言失败,停止任务执行
47 | 2. 完善内置缓存脚本维护方式,只缓存第一个分组的第一个脚本文件的
48 | 3. 修复iframe嵌套操作元素问题
49 | 4. 修复截图用例异常情况问题
50 | 5. 修复录制脚本拖拽元素不全问题
51 | 6. 断言脚本支持延迟等待(秒)
52 | 7. 修复已知bug
53 |
54 | ### 2023-10-14 eTest 自动化测试工具v1.1.24
55 |
56 | 1. 修复变量配置编辑问题
57 | 2. 修复已知bug 优化页面交互
58 | 3. windows 版本升级最新添加demo演示
59 |
60 |
61 | ### 2023-08-29 eTest 自动化测试工具v1.1.23
62 |
63 | 1. 添加eTest 回放拖拽功能
64 | 2. 修复页面iframe嵌套bug
65 | 3. 添加 chrome插件录制拖拽脚本的功能
66 |
67 |
68 | ### 2023-08-16 eTest 自动化测试工具v1.1.22
69 |
70 | 1. 首次使用 没有获取到chome 运行出错,并且系统未检测到chrome浏览器 提示检测本地是否按转 chrome 浏览器
71 | 2. 支持配置痕迹查询,对测试过程的网络请求状态
72 | 3. ete自动化测试报告,断言错误 支持视频回放查看结果
73 | 4. 修复滚动操作获取dom 元素失败
74 |
75 |
76 | ### 2023-07-28 eTest 自动化测试工具v1.1.21
77 |
78 | 1. 优化ete 全局配置,支持小保存,删除大保存
79 | 2. 支持开发检测本地chrome
80 | 3. 完成性能优化,支持鉴权、登录请求下收集网站性能信息
81 |
82 |
83 | ### 2023-07-14 eTest 自动化测试工具v1.1.20
84 |
85 | 1. 添加新手引导Demo项目
86 | 2. 添加菜单 加载Demo
87 | 3. 修复已知bug
88 |
89 | ### 2023-07-03 eTest 自动化测试工具v1.1.19
90 | 1. eTest 支持性能收集报告
91 | 2. 修复已知bug
92 | 3. chrome-plugin 支持性能采集
93 |
94 |
95 | ### 2023-05-18 eTest 自动化测试工具v1.1.18
96 | 1. 添加查看日志
97 | 2. 修复多滚动条问题
98 | 3. 修复已知bug
99 | 4. 修复windows打包问题
100 |
101 | ### 2023-05-18 eTest 自动化测试工具v1.1.17
102 | 1. 兜底浏览器异常关闭退出
103 | 2. 优化debug调试功能打印信息
104 | 3. 支持快捷键调试
105 | 4. 修复已知bug
106 |
107 | ### 2023-05-12 eTest 自动化测试工具v1.1.16
108 | 1. 添加创建测试文件的兜底
109 | 2. 优化ete调试功能
110 | 3. 优化消息通知
111 | 4. 修复已知bug
112 |
113 | ### 2023-05-09 eTest 自动化测试工具v1.1.15&eTest-plugin V_1.3.4
114 | 1. 修复eTest-plugin插件录制脚本bug
115 | 2. eTest 修复网络鉴定
116 | 3. 修改消息通知
117 |
118 | ### 2023-05-04 eTest更新版本更新v1.1.14
119 | 1. 兜底页面滚动 xpath 问题
120 | 2. 修改断言问题脚本问题
121 |
122 | ### 2023-05-03 eTest更新版本更新v1.1.13
123 | 1. chrome-plugin 支持截图
124 | 2. etest支持ocr识别是否和录制网址状态是否一致
125 | 3. 修复获取dom元素点击抖动问题
126 | 4. 修复已知bug
127 |
128 | ### 2023-04-11 eTest更新版本更新
129 | 1. eTest 添加启动测试塞入缓存功能 🆕
130 | 2. eTest 添加断网运行提示 🆕
131 | 3. eTest 添加dom 查找功能的兜底逻辑 🆕
132 | 4. chrome-plugin 支持收集网站 缓存数据 🆕
133 | 5. 修复已知问题bug 🐛
134 |
135 | ### 2023-03-08 优化更新第一版
136 |
137 | 1. etest 上线第一个稳定版本 支持(mac、 windows)
138 | 2. etest-chrome插件修复已知问题
139 |
--------------------------------------------------------------------------------
/about/_sidebar.md:
--------------------------------------------------------------------------------
1 | - [版本记录](about/)
2 | - [视频教程](about/video.md)
3 | - [社区](about/quesion.md)
4 | - [团队](about/team.md)
5 |
6 |
--------------------------------------------------------------------------------
/about/quesion.md:
--------------------------------------------------------------------------------
1 | # 社区文章
2 |
3 | #### 脚本录制调试方法
4 |
5 | [eTest自动化测试在团队协作的三步探索](https://juejin.cn/post/7357194991338651648): 团队协作的最优方案,团队协作更加方便
6 |
7 | [etest 高级变量支持Mock数据](https://juejin.cn/post/7345379864739266579) : mock数据,支持特定场景,让测试场景随心所欲
8 |
9 | [eTest自动化测试支持录制文件上传用例](https://juejin.cn/post/7343883765539782707) : 新功能扩展,支持更多测试场景
10 |
11 | [eTest 自动化测试关于团队协作问题](https://juejin.cn/post/7287768247889412155) : 简化团队内部协作,提升开发效率
12 |
13 | [eTest_v1.1.23版本 支持拖拽功能](https://juejin.cn/post/7273026558402052096) : 完善录制脚本更多功能,开发eTest 无限遐想
14 |
15 | [eTest 更新引入Playwright Trace &视频回放](https://juejin.cn/post/7267927742797152291) : 完善自动化测试报告,提升使用体验
16 |
17 | [使用 eTest 5分钟搭建一个性能收集平台](https://juejin.cn/post/7262894998785179703): 开启鉴权,带你了解网站的性能瓶颈
18 |
19 | [eTest 喊你来探索自动化测试](https://juejin.cn/post/7255605810453381175): 内置Demo,提升开发者首次探索eTest的乐趣
20 |
21 | [掘金!eTest 喊你做优化性能优化了](https://juejin.cn/post/7251501890559033401):在运行自动化测试时,开启性能收集,收集网站性能,持续提升体验
22 |
23 | [ eTest 帮你每日打卡掘金签到](https://juejin.cn/post/7236295340630409274): 通过定时任务触发运行自动化任务,执行一些自动化任务
24 |
25 | [ eTest 自动化工具调试](https://juejin.cn/post/7234342980156162105):试用eTest工具的小伙伴遇到问题反馈,做了一个优化功能,帮助大家快速定位问题
26 |
27 | [呀!不经意间帮小米做了一个自动化线上巡检](https://juejin.cn/post/7231080269502169147):通过定时任务触发运行自动化任务,为线上项目保驾护航
28 |
29 | [不务正业的前端写了一个自动化测试工具](https://juejin.cn/post/7229587772217327671): 筑梦的开始,值得被记忆
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/about/team.md:
--------------------------------------------------------------------------------
1 | # 团队信息
2 |
3 |
4 |
5 | 方案落地只是一个开始,我们只是完成了从 0 到 1,从 1 到 100 我们还有很长的路要走,打造一款优秀的产品就离不开从 1 到 100 的过程,可能需要更多的时间,修复问题,改善用户交互体验,提升性能优化...,同时我们也需要大家的意见,测试应用的更好,离不开大家的支持,同时请大家再给我们多一点时间,让我们有更多的时间,更好的交互来完善应用。为了某一个细节,可能会花费我们很多时间 ,远比我们第一版实现出来的成本高出很多,但是我们愿意花费更多时间去打磨它。过程虽然枯燥,我们愿意去做,我们做的不只是一个创意,也不是因为一时兴起,而是一款经得起大家检验的测试应用,希望大家跟我们一起见证集成测试的成长。🙏🙏🙏🙏
6 |
7 | 很幸运身边有一群志同道合的伙伴,一起为一个想法奋斗!如果说从 0 到 1 是靠的是兴趣,那么从 1 到 100 一定是耐得住寂寞的坚持,我们很开心做了自己喜欢做的事,但我们同样对从 1 到 100 充满期待!
8 |
9 | 最终还想用那句座右铭来激励自己:**路虽远·行者必至!**
10 |
11 | #### 联系我们
12 | 如果大家对工具有其他的建议,和改进方案,也可以联系我们,我们会第一时间支持,欢迎大家骚扰
13 |
14 |
15 |
--------------------------------------------------------------------------------
/about/version.md:
--------------------------------------------------------------------------------
1 | # 系统更新信息
2 |
3 |
4 | ### eTest 自动化测试工具v1.1.18
5 | 1. 添加查看日志
6 | 2. 修复多滚动条问题
7 | 3. 修复已知bug
8 |
9 | ### eTest 自动化测试工具v1.1.17
10 | 1. 兜底浏览器异常关闭退出
11 | 2. 优化debug调试功能打印信息
12 | 3. 支持快捷键调试
13 | 4. 修复已知bug
14 |
15 | ### 2023-05-12 eTest 自动化测试工具v1.1.16
16 | 1. 添加创建测试文件的兜底
17 | 2. 优化ete调试功能
18 | 3. 优化消息通知
19 | 4. 修复已知bug
20 |
21 | ### 2023-05-09 eTest 自动化测试工具v1.1.15&eTest-plugin V_1.3.4
22 | 1. 修复eTest-plugin插件录制脚本bug
23 | 2. eTest 修复网络鉴定
24 | 3. 修改消息通知
25 |
26 | ### 2023-05-04 eTest更新版本更新v1.1.14
27 | 1. 兜底页面滚动 xpath 问题
28 | 2. 修改断言问题脚本问题
29 |
30 | ### 2023-05-03 eTest更新版本更新v1.1.13
31 | 1. chrome-plugin 支持截图
32 | 2. etest支持ocr识别是否和录制网址状态是否一致
33 | 3. 修复获取dom元素点击抖动问题
34 | 4. 修复已知bug
35 |
36 | ### 2023-04-11 eTest更新版本更新
37 | 1. eTest 添加启动测试塞入缓存功能 🆕
38 | 2. eTest 添加断网运行提示 🆕
39 | 3. eTest 添加dom 查找功能的兜底逻辑 🆕
40 | 4. chrome-plugin 支持收集网站 缓存数据 🆕
41 | 5. 修复已知问题bug 🐛
42 |
43 | ### 2023-03-08 优化更新第一版
44 |
45 | 1. etest 上线第一个稳定版本 支持(mac、 windows)
46 | 2. etest-chrome插件修复已知问题
47 |
--------------------------------------------------------------------------------
/about/video.md:
--------------------------------------------------------------------------------
1 | # 社区视频课程
2 |
3 | 1. 认识 & 安装
4 |
5 | 1. [01 etest 简介](https://www.bilibili.com/video/BV13P411f7pk/?share_source=copy_web&vd_source=fad10b7f790d78a120e75cc03658f97b)
6 |
7 | 2. [02 eTest安装谷歌插件&mac桌面应用](https://www.bilibili.com/video/BV1kP411f7XV/?share_source=copy_web&vd_source=fad10b7f790d78a120e75cc03658f97b)
8 |
9 | 3. [03 eTest 自动化测试 菜单功能](https://www.bilibili.com/video/BV17B4y1d7wz/?share_source=copy_web&vd_source=fad10b7f790d78a120e75cc03658f97b)
10 |
11 | 2. UI自动化
12 | 1. [04 eTest UI自动化快速上手](https://www.bilibili.com/video/BV1kc411Z7Gg/?share_source=copy_web&vd_source=fad10b7f790d78a120e75cc03658f97b)
13 |
14 | 3. eTe自动化
15 |
16 | 1. [05 eTest自动化测试,ete快速开始](https://www.bilibili.com/video/BV1qe411979R/?share_source=copy_web&vd_source=fad10b7f790d78a120e75cc03658f97b)
17 |
18 | 2. [06 eTest自动化测试 设置消息推送 & 定时任务](https://www.bilibili.com/video/BV1uj411v7Cq/?share_source=copy_web&vd_source=fad10b7f790d78a120e75cc03658f97b)
19 |
20 | 3. [07 eTest 自动化测试 无头模式调试功能](https://www.bilibili.com/video/BV1Cc411f7J8/?share_source=copy_web&vd_source=fad10b7f790d78a120e75cc03658f97b)
21 | 4. [08 eTest自动化测试 eTe查看行为设置缓存](https://www.bilibili.com/video/BV1c94y1L79N/?share_source=copy_web&vd_source=fad10b7f790d78a120e75cc03658f97b)
22 | 5. [09 eTest自动化测试 环境配置&变量配置](https://www.bilibili.com/video/BV1Ww411M7BM/?share_source=copy_web&vd_source=fad10b7f790d78a120e75cc03658f97b)
23 |
24 | 4. eTe 结合 ant design pro实战
25 |
26 | 1. [10 eTest自动化测试工具实战 Ant Design项目实战](https://www.bilibili.com/video/BV1KQ4y1n72B/?share_source=copy_web&vd_source=fad10b7f790d78a120e75cc03658f97b)
27 | 2. [11 eTest自动化测试 antd项目实战](https://www.bilibili.com/video/BV1Gz4y1P7bu/?share_source=copy_web&vd_source=fad10b7f790d78a120e75cc03658f97b)
28 | 3. [12 eTest自动化测试 antd 实战监控&工作台](https://www.bilibili.com/video/BV1LN4y1U79r/?share_source=copy_web&vd_source=fad10b7f790d78a120e75cc03658f97b)
29 | 4. [13 eTest自动化测试 实战antd 表单录入](https://www.bilibili.com/video/BV12M411o7Ly/?share_source=copy_web&vd_source=fad10b7f790d78a120e75cc03658f97b)
30 | 5. [14 eTest自动化测试遇到ant design 列表断言&添加列表数据](https://www.bilibili.com/video/BV1d34y1F785/?share_source=copy_web&vd_source=fad10b7f790d78a120e75cc03658f97b)
31 | 5. [15 eTest自动化测试 antd实战详情页测试](https://www.bilibili.com/video/BV1Pj411L7Lp/?share_source=copy_web&vd_source=fad10b7f790d78a120e75cc03658f97b)
32 | 6. [16 eTest自动化测试 antd 实战个人中心](https://www.bilibili.com/video/BV1GC411z7uJ/?share_source=copy_web&vd_source=fad10b7f790d78a120e75cc03658f97b)
33 |
--------------------------------------------------------------------------------
/application/README.md:
--------------------------------------------------------------------------------
1 | 
2 |
3 | - **0 代码,自动化测试**
4 | - **完善的测试报告**
5 | - **强大的扩展能力**
6 | - **自动化运行定时任务以及测试结果推送机制**
7 |
--------------------------------------------------------------------------------
/application/_sidebar.md:
--------------------------------------------------------------------------------
1 | - [快速开始](application/example.md)
2 | - [UI](application/ui.md)
3 | - [ETE](application/ete.md)
4 | - [扩展管理](application/plugin.md)
5 | - [错误信息列表](application/code.md)
6 |
--------------------------------------------------------------------------------
/application/code.md:
--------------------------------------------------------------------------------
1 | # 错误信息列表
2 |
3 | 为了方便使用者对错误的判断定位,我们引入了自定义的错误状态码信息,方便错误信息的定位.
4 |
5 | | code | 描述 |
6 | | ---- | --------------------------------------- |
7 | | 1000 | 全局系统性错误 |
8 | | 2000 | UI 还原性错误 |
9 | | 3000 | ete 测试错误 |
10 | | 3001 | ete 上传错误文件错误 |
11 | | 3002 | 请先上传文件 |
12 | | 3003 | 无法连接互联网,请检查网络! |
13 | | 3004 | 请先勾选需要运行的文件 |
14 | | 3005 | 文件已被破坏!请重新上传 |
15 | | 3006 | 拖拽保存文件失败 |
16 | | 3007 | 初始化外部插件错误 |
17 | | 3008 | 初外部执行插件返回错误 |
18 | | 3009 | 参数初始化失败 |
19 | | 3010 | 性能优化方案失败 |
20 | | 3011 | 浏览器执行失败 |
21 | | 3012 | 执行 ete 语法错误 |
22 | | 3013 | 接口请求 request 失败 |
23 | | 3014 | page 页面监听报错 |
24 | | 3015 | Load 等待网络请求加载超时 |
25 | | 3016 | 自执行函数错误 |
26 | | 3017 | 页面生成变量落后与当前配置位置 |
27 | | 3018 | 写入文件错误 |
28 | | 4000 | api 测试错误 |
29 | | 4001 | 测试脚本文件数据结构错误没有 dataSource |
30 | | 4002 | 导入文件错误 |
31 | | 4002 | 导入 postman 文件错误 |
32 | | 4003 | 初始化外部插件错误 |
33 | | 4004 | 接口请求错误,请检查请求服务器 |
34 | | 4005 | 外部执行插件返回错误 |
35 | | 4006 | 执行 api 语法错误 |
36 | | 4007 | 自执行函数报错 |
37 | | 5000 | 接口测试错误 |
38 | | 5001 | 没有配置压测参数,请先配置 |
39 | | 5002 | 没有配置压测参数,请先配置 |
40 | | 5003 | 请完善 url 信息 |
41 | | 5004 | 执行压力结果错误 |
42 | | 6000 | 插件错误 |
43 |
--------------------------------------------------------------------------------
/application/ete.md:
--------------------------------------------------------------------------------
1 | # ETE
2 |
3 | ?> 为页面测试而生, 彻底解决页面测试的繁琐操作,提升测试乐趣!
4 |
5 |
6 |
7 | ## 优势
8 |
9 | 1. 测试脚本通过录制实现,上手简单,效率高
10 | 2. 上手方便,不需要额外的编码能力,使用多种方式定位dom
11 | 3. 测试文件管理复用方便,维护成本低
12 |
13 | ## 解决痛点
14 |
15 | 市面上的 ete 测试框架很多,但对许多测试人员的编码能力有一定的要求,而且随着业务复杂度的提高,每一次迭代都可能导致重新编写测试脚本修改,可维护性很差,迁移能力较弱,测试成本高,结合以上问题,我们对 ete 测试框架做了二次封装,尽可能减少对测试人员编码的要求,满足日常多场景的测试,需要测试人员在 chrome 浏览器在开启 eTest 脚本录制工具,进行操作,便可生成测试人员想要的测试脚本,解放测试人员的臃肿烦躁的重复测试场景,让 ete 测试变的充满乐趣。使测试人员有更多的精力做更深层次的测试。
16 |
17 | ## 流程设计图
18 |
19 | #### 浏览器录制脚本流程图
20 |
21 | 
22 |
23 | ete 测试,需要依赖操作者操作,收集录制脚本信息,所以需要安装 chrome 插件,通过启用插件,收集用户操作信息,生成 ete 测试需要的脚本文件。
24 |
25 | !> Chrome 插件下载方式 [eTest github 下载](https://github.com/alltheblue/docs/releases)
26 |
27 | #### ETE 执行脚本流程图
28 |
29 | 
30 |
31 | ## 支持功能
32 |
33 | 1. 支持 iframe 多嵌套操作 , 支持动态 iframe 插入问题 :heavy_check_mark:
34 | 2. 支持关闭 alert 提示 :heavy_check_mark:
35 | 3. 支持等待 dom 元素显示 :heavy_check_mark:
36 | 4. 支持页面断言操作,数字类型的大于小于等于操作 :heavy_check_mark:
37 | 5. 支持生成测试报告 :heavy_check_mark:
38 | 6. 支持运行时页面请求错误收集 :heavy_check_mark:
39 | 7. 支持延时操作处理 :heavy_check_mark:
40 | 8. 支持运行自动化无头模式 :heavy_check_mark:
41 | 9. 支持自动等待网络加载完成后操作 :heavy_check_mark:
42 | 10. 支持阻止默认事件后,依然可以获取事件操作 :heavy_check_mark:
43 | 11. 支持事件被阻止依旧可以收集 :heavy_check_mark:
44 | 12. 支持断言错误自动截图 :heavy_check_mark:
45 | 13. 支持在线修改 json 数据 :heavy_check_mark:
46 | 14. 支持用例拖拽排序 :heavy_check_mark:
47 | 15. 支持导出性能优化报告(lighthouse) :heavy_check_mark:
48 | 16. 支持收集浏览器的前进后退刷新操作 :heavy_check_mark:
49 | 17. 支持多 tab 页间的切换 :heavy_check_mark:
50 | 18. 支持测试用例每一步的操作截图 :heavy_check_mark:
51 | 19. 支持高级配置自定义对输入、断言修改 :heavy_check_mark:
52 | 20. 支持获取页面的文本设置当前执行的变量 :heavy_check_mark:
53 | 21. 支持自动收集页面滚动数据 :heavy_check_mark:
54 | 22. 支持页面快捷键操作 :heavy_check_mark:
55 | 23. 支持测试用例分组维护 :heavy_check_mark:
56 | 24. 支持测试文件重命名修改 :heavy_check_mark:
57 | 25. 支持导入导出文件信息 :heavy_check_mark:
58 | 26. 支持设置缓存信息 :heavy_check_mark:
59 | 27. 支持可视区域生成图片对比生成测试结果 :heavy_check_mark:
60 | 28. 支持测试脚本按步骤调试 :heavy_check_mark:
61 | 29. ete自动化测试报告,断言错误 支持视频回放查看结果 :heavy_check_mark:
62 | 30. 支持在鉴权、登录请求下收集网站性能信息 :heavy_check_mark:
63 | 31. 支持测试用例拖拽功能 :heavy_check_mark:
64 | 32. 支持自定义函数、自定义插件扩展:heavy_check_mark:
65 | 33. 支持多浏览器切换运行自动化测试 Chrome\Edge :heavy_check_mark:
66 | 34. 支持测试报告图片放大预览:heavy_check_mark:
67 | 35. 支持接口返回自定义请求值校验:heavy_check_mark:
68 | 35. 支持mock请求返回值:heavy_check_mark:
69 | 36. 支持文件上传:heavy_check_mark:
70 |
71 | ## 快速开始
72 |
73 | ### 下载 chrome 插件
74 |
75 | !> Chrome 插件下载方式 [eTestv1.3.6 github 下载](https://github.com/alltheblue/docs/releases)
76 |
77 | ### 设置插件开启无痕模式
78 |
79 | 
80 |
81 | 打开浏览器`管理扩展程序`选择`eTest`插件,点击`详情`,打开`在无痕模式下启用`,即可。
82 |
83 | 
84 | 
85 |
86 | ### 录制脚本文件
87 |
88 | 
89 |
90 | 打开右上角的 chrome 插件 点击小图标出现 `start` 状态,表示已启动测试脚本录制
91 |
92 | ?> 由于在脚本回放打开的是无痕浏览模式,所以在录制脚本的时候请先清除历史记录和缓存数据,以保证回放的时候的正确性,或者开启无痕模式录制脚本信息
93 |
94 | 
95 |
96 | 点击网页操作,eTest 插件提示 `添加一条操作事件` ,说明 eTest 插件正在记录用户在页面的操作。
97 |
98 | !> 点击时间, 文本框,下拉框改变 都会触发该动作
99 |
100 | 
101 |
102 | 选中文本,鼠标右键,选择期望的断言结果
103 |
104 | #### 断言值
105 |
106 | 根据用户选中的文本自动判断 `string`或者 `number`类型,然后自动生成需要的测试用例菜单列表,
107 |
108 | **注意**
109 |
110 | - 选择文本时,会自动选择当前标签内的全部内容。
111 | - 如果选中的文本是含有两个相邻标签的内容,则会默认选中第一个标签的全部内容。
112 | - 如果选中的文本内部包含多个标签 则会判断满足一定条件 最多 3 个子标签并且小于 200 字以内。
113 |
114 | ##### 事件
115 |
116 | 1. load: 刷新
117 | 1. click:单击事件
118 | 1. dbclick:双击事件
119 | 1. hover:鼠标 hover
120 | 1. scroll:滚动至此
121 | 1. 生成全局变量
122 |
123 | !> 高级用法 `生成全局变量` 在需要的一些场景需要对页面的值做输入处理
124 |
125 | ##### 文本断言
126 |
127 | 1. include:包含当前值
128 | 1. exclude:不包含当前值
129 |
130 | ##### 数字断言
131 |
132 | 1. greater:大于当前值
133 | 1. equal:等于 当前值
134 | 1. less:小于当前值
135 |
136 | ##### 属性值断言(class、id、data、 type....)
137 |
138 | 1. include:包含当前值
139 | 1. exclude:不包含当前值
140 |
141 | 
142 |
143 | 点击右上 eTest 图标,结束测试脚本录制,并且生成测试脚本文件,下载到本地
144 |
145 | !> 如果测试脚本用例小于 2 条,则不会生成脚本信息
146 |
147 | ### 生成脚本文件
148 |
149 | 通过`chrome`插件生成的脚本文件如下格式:
150 |
151 | ```json
152 | [
153 | {
154 | "active": true,
155 | "audible": false,
156 | "autoDiscardable": true,
157 | "discarded": false,
158 | "favIconUrl": "https://www.baidu.com/img/baidu_85beaf5496f291521eb75ba38eacbd87.svg",
159 | "groupId": -1,
160 | "height": 882,
161 | "highlighted": true,
162 | "id": 83891737,
163 | "incognito": false,
164 | "index": 64,
165 | "mutedInfo": { "muted": false },
166 | "openerTabId": 83891734,
167 | "pinned": false,
168 | "selected": true,
169 | "status": "complete",
170 | "title": "百度一下,你就知道",
171 | "url": "https://www.baidu.com/",
172 | "width": 1680,
173 | "windowId": 83891251,
174 | "action": "start",
175 | "indexNum": 0,
176 | "date": 1678243527820,
177 | "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36",
178 | "cookies": [
179 | {
180 | "domain": "www.baidu.com",
181 | "expirationDate": 1711066469,
182 | "hostOnly": true,
183 | "httpOnly": false,
184 | "name": "MSA_WH",
185 | "path": "/",
186 | "sameSite": "unspecified",
187 | "secure": false,
188 | "session": false,
189 | "storeId": "0",
190 | "value": "3901244"
191 | }
192 | ],
193 | "localStorage": {
194 | "BAIDU_PRIVATE": "16ww496207",
195 | "squarePop": "1",
196 | "___ds_storage__eqid": "xxx|1679995377511",
197 | "index_ls_qid": "xxx"
198 | },
199 | "sessionStorage": {
200 | "BAIDU_PRIVATE": "xxx"
201 | },
202 |
203 | "isMobile": false,
204 | "hasTouch": false,
205 | "deviceScaleFactor": 1,
206 | "type": "start"
207 | },
208 | {
209 | "x": 505.5,
210 | "y": 211.671875,
211 | "url": "https://www.baidu.com/",
212 | "date": 1678243529332,
213 | "height": 44,
214 | "xpath": "//*[@id=\"kw\"]",
215 | "width": 550,
216 | "value": "",
217 | "clientX": 695,
218 | "clientY": 234,
219 | "selector": "document > html > body > div > div > div > div > div > form > span > input",
220 | "iframe": "",
221 | "indexNum": 1,
222 | "innerHtml": "",
223 | "localName": "input",
224 | "localNameType": "text",
225 | "type": "click"
226 | },
227 | {
228 | "x": 505.5,
229 | "y": 211.671875,
230 | "url": "https://www.baidu.com/",
231 | "date": 1678243539976,
232 | "height": 38,
233 | "xpath": "//*[@id=\"kw\"]",
234 | "width": 471,
235 | "value": "你好",
236 | "clientX": 695,
237 | "clientY": 234,
238 | "selector": "document > html > body > div > div > div > div > div > form > span > input",
239 | "iframe": "",
240 | "indexNum": 2,
241 | "innerHtml": "",
242 | "localName": "input",
243 | "localNameType": "text",
244 | "type": "change"
245 | },
246 | {
247 | "x": 725,
248 | "y": 15,
249 | "url": "https://www.baidu.com/",
250 | "date": 1678243540156,
251 | "height": 40,
252 | "xpath": "//*[@id=\"su\"]",
253 | "width": 112,
254 | "value": "百度一下",
255 | "clientX": 783,
256 | "clientY": 36,
257 | "selector": "document > html > body > div > div > div > div > div > form > span > input",
258 | "iframe": "",
259 | "indexNum": 3,
260 | "innerHtml": "",
261 | "localName": "input",
262 | "localNameType": "submit",
263 | "type": "click"
264 | },
265 | {
266 | "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36",
267 | "isMobile": false,
268 | "hasTouch": false,
269 | "deviceScaleFactor": 1,
270 | "type": "start",
271 | "active": true,
272 | "audible": false,
273 | "autoDiscardable": true,
274 | "discarded": false,
275 | "favIconUrl": "https://www.baidu.com/img/baidu_85beaf5496f291521eb75ba38eacbd87.svg",
276 | "groupId": -1,
277 | "height": 882,
278 | "highlighted": true,
279 | "id": 83891737,
280 | "incognito": false,
281 | "index": 64,
282 | "mutedInfo": { "muted": false },
283 | "openerTabId": 83891734,
284 | "pinned": false,
285 | "selected": true,
286 | "status": "complete",
287 | "title": "百度一下,你就知道",
288 | "url": "https://www.baidu.com/s?wd=%E4%BD%A0%E5%A5%BD&rsv_spt=1&rsv_iqid=0xece676f10009f696&issp=1&f=8&rsv_bp=1&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=0&rsv_dl=tb&rsv_sug3=10&rsv_sug1=10&rsv_sug7=101&sug=%25E4%25BD%25A0%25E5%25A5%25BD%2520%25E6%259D%258E%25E7%2584%2595%25E8%258B%25B1&rsv_n=1&rsv_btype=i&prefixsug=%25E4%25BD%25A0%25E5%25A5%25BD&rsp=0&inputT=9238&rsv_sug4=10826",
289 | "width": 1680,
290 | "windowId": 83891251,
291 | "action": "replacePage",
292 | "indexNum": 4,
293 | "date": 1678243540180
294 | },
295 | {
296 | "xpath": "//html",
297 | "iframe": "",
298 | "selector": "document",
299 | "scrollTop": 594,
300 | "scrollLeft": 0,
301 | "type": "scrollWin",
302 | "url": "https://www.baidu.com/s?wd=%E4%BD%A0%E5%A5%BD&rsv_spt=1&rsv_iqid=0xece676f10009f696&issp=1&f=8&rsv_bp=1&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=0&rsv_dl=tb&rsv_sug3=10&rsv_sug1=10&rsv_sug7=101&sug=%25E4%25BD%25A0%25E5%25A5%25BD%2520%25E6%259D%258E%25E7%2584%2595%25E8%258B%25B1&rsv_n=1&rsv_btype=i&prefixsug=%25E4%25BD%25A0%25E5%25A5%25BD&rsp=0&inputT=9238&rsv_sug4=10826",
303 | "indexNum": 5,
304 | "date": 1678243545352
305 | }
306 | ]
307 | ```
308 |
309 | #### 关键 key
310 |
311 | | key | 描述 |
312 | | ---------- | ------------------------------------------------------------------- |
313 | | url | 当前打开的 URL 地址信息 |
314 | | x | 获取当前操作的 dom 位置 X 轴坐标 |
315 | | y | 获取当前操作的 dom 位置 Y 轴坐标 |
316 | | width | 当前录制的浏览器的宽度或者 获取当前操作的 dom 的宽度 |
317 | | height | 当前录制的浏览器的高度或者 获取当前操作的 dom 的高度 |
318 | | xpath | 获取当前操作的 dom 的唯一地址 |
319 | | selector | 获取当前操作的 dom 的路径信息 |
320 | | clientX | 获取当前操作的 dom 距离浏览器视口的 X 轴距离 |
321 | | clientY | 获取当前操作的 dom 距离浏览器视口的 Y 轴距离 |
322 | | type | 获取当前操作的 dom 操作类型 click、change、scrollWin、load、dbclick |
323 | | date | 当前操作的 dom 操作录入的时间 |
324 | | iframe | 当前网页是否嵌有 iframe 地址 |
325 | | indexNum | 当前测试用例的索引 |
326 | | scrollTop | 如果触发了 `type`为`scrollWin`需要记录滚动的上下位置 |
327 | | scrollLeft | 如果触发了 `type`为`scrollWin`需要记录滚动的左右位置 |
328 |
329 | ### ete 录入脚本&启动
330 |
331 | 
332 |
333 | 打开集成测试 `创建项目`然后`点击项目 进入ETE`,可以通过点击新增 导入文件或者创建分组
334 |
335 | !> **注意**:导入文件会覆盖项目下的 ete 之前维护的脚本文件,请谨慎操作
336 |
337 | 
338 |
339 | 新建分组,有利于分类归纳维护测试脚本文件,
340 |
341 | 
342 |
343 | 上传测试脚本文件后可以按照分组归纳,如果需要调整分组,文件排序 按住 `分组`, `文件` 拖动即可实现排序,
344 |
345 | !> 注意:测试的文件需按顺序执行,如果出现断层则会影响测试结果。
346 |
347 | 
348 |
349 | 测试文件上传时默认 `选中`; 如果没有勾选选中,在执行测试用例的过程中,则不被执行当前测试文件 支持 `分组`、`单个脚本`勾选
350 |
351 | 
352 |
353 | 对`分组`、`脚本`的 `删除` 、`重命名` 操作,对后续的展示测试报告的时,更加友好
354 |
355 | 
356 |
357 | 运行 ete 测试过程中,如果需要停止任务,可点击 `停止运行`,结束此次运行,运行结束后,生成测试报告`报告名称` 是项目名称加当前时间拼接成的,模式分为`自动`和`手动` 两种模式,自动:是定时任务运行的;手动:是用户自己运行的用例;
358 |
359 | !> 注意:首次运行自动化前,请检查本地是否按装chrome 浏览器
360 |
361 | ### 测试结果
362 |
363 | 
364 |
365 | 测试报告列表,会展示一些关键信息 ,`断言结果`,`请求错误`,`页面错误`,`用时` 汇总信息
366 |
367 | 
368 |
369 | 展示测试报告详情,解析也页面 `断言结果`、 `请求接口错误` 、`页面错误` ,如果断言结果发生; 错误,则会**截图**展示错误结果,方便开发者查看断言错误原因;断言结果通过分组+ 脚本名称+ 脚本索引,可以更加快速的定位到测试脚本信息,页面在执行的过程中,出现了请求错误,则会抓取请求地址以及错误类型,展现在页面上; 页面错误:在运行 ete 过程中出现的错误,加载超时、找不到元素等,都会被列举出来。
370 |
371 | ### 全局配置
372 |
373 | 设置`性能分析`后,ete 在测试结束时也会导出页面性能的分析报告,开发人员可以通过分析报告,参考[web.dev](https://web.dev/performance-scoring/?utm_source=lighthouse&utm_medium=node)完成对页面的性能优化,提升了页面的加载性能的优化。
374 |
375 | 
376 |
377 | 点击 `文件名称`,弹出测试用例详细信息,可以对 测试用例文件进行简单的编辑操作,如`assertions` 表示断言信息,`assertions.action`表示断言结果, 如果熟悉[**断言** ](#断言值)可直接修改断言信息,保存运行提高测试的执行效率
378 |
379 | ```json
380 | {
381 | "editable": false,
382 | "frameId": 0,
383 | "linkUrl": "http://news.baidu.com/",
384 | "menuItemId": "include",
385 | "pageUrl": "https://www.baidu.com/",
386 | "selectionText": "新闻",
387 | "type": "assert",
388 | "xpath": "//*[@id=\"s-top-left\"]",
389 | "iframe": "",
390 | "assertions": {
391 | "value": "新闻",
392 | "action": "include"
393 | },
394 | "indexNum": 12
395 | }
396 | ```
397 |
398 | ### 录制文件上传
399 |
400 | 测试用例中有些测试场景需要支持文件上传,针对这个测试用例,可能需要开发者code代码
401 |
402 | ```javascript
403 | {
404 | "xpath": "//*[@id="page-content"]/div/div/div[1]/div/div[1]/div[1]/div/div[1]/input",
405 | "filePath": "/Users/xxx/Desktop/desktop/myproject/load.png",
406 | "type": "upload",
407 | "iframe": "",
408 | "selector": "document",
409 | "url": "https://www.xiaomiyoupin.com/",
410 | }
411 | ```
412 |
413 | #### 关键 key
414 |
415 | | key | 描述 |是否必填|
416 | | ---------- | ------------------------------------------------------------------- |--------|
417 | | url | 当前打开的 URL 地址信息 | Y |
418 | | filePath | 上传文件路径地址,支持绝对路径,或者默认桌面文件 |Y |
419 | | type | 获取当前操作的 dom 操作类型 upload |Y |
420 | | xpath | 获取当前操作的 dom 的唯一地址 |Y |
421 | | selector | 获取当前操作的 dom 的路径信息 |N |
422 | | iframe | 当前网页是否嵌有 iframe 地址 |N |
423 |
424 |
425 |
426 | !> 如果修改的测试用例信息过多,建议重新录制脚本信息,防止文件执行过程报错,影响测试结果。
427 |
428 | 
429 |
430 | 1. 无头模式:配置启动测试是否自动在无头模式下运行 默认是 `fasle`
431 | 2. 开启调试:配置开启调试模式后,仅在手动执行下生效,需要通过快捷键`ctrl+f`执行下一步默认是 `fasle`
432 | 3. 性能分析: 浏览器测试时,是否收集性能分析报告,**定时任务不会开启性能分析** 默认是 `fasle`
433 | 4. 行为快照: 对于页面的每一步操作都会生成快照,待用力执行完毕后,会自动导出到桌面,**定时任务不会开启行为快照** ,默认是 `fasle`
434 | 5. 设置缓存:`cookies`、`localStorage`中,这种情况只要开启此功能,会在开启页面的时候将数据塞进浏览器中,对 `sessionStorage`缓存无效,并且多个脚本同一个 `key`不同的`value`有优先使用第一个,
435 | `cookies`、`localStorage`中,这种情况只要开启此功能,会在开启页面的时候将数据塞进浏览器中,对 `sessionStorage`缓存无效,并且多个脚本同一个 `key`不同的`value`有优先使用第一个,
436 | 6. 开启高级配置:`开启高级配置` 需要再`高级配置`中,配置环境变量,不开启`高级配置 `中的配置的变量不被生效
437 | 7. 开启插件配置:`开启插件配置` 需要再`高级配置`中,配置插件配置,不开启`高级配置 `中的插件配置不被生效
438 | 8. 开启环境配置: :`开启环境配置:` 需要再`高级配置`中,配置环境配置,不开启`高级配置 `中的插件配置不被生效
439 | 9. 超时时间:浏览器在操作时,等待下一个操作的最长时间 默认是 `60s`
440 | 10. 延迟时间:由于一些特色场景需要设置长时间等待,最大不得超过`60s`, `延迟时间`与 `超时时间`同时设置延迟时间不得超过超时时间
441 |
442 | 
443 |
444 | ### 高级配置
445 |
446 | #### 环境配置
447 |
448 | 对于多环境的测试问题,可以通过配置环境域名来实现在不同的环境下执行测试用例,但是需要保证在执行的测试用例的数据是一致的
449 |
450 | 
451 |
452 | 首先配置需要区分的环境变量
453 |
454 | 
455 |
456 | 添加需要配置的替换的环境名称
457 |
458 | 
459 |
460 | 启用环境变量
461 |
462 | #### 变量配置
463 |
464 | 再执行自动化测试任务中有些入参是不能重复提交的,这就导致了我们录入的脚本信息,再跑定时任务的过程中,需要自定义配置入参
465 |
466 | 
467 |
468 | 1. 手动新增环境变量
469 | 2. 来源分为`手动设置`(可以自定义配置环境变量)、 `页面取值`(通过录制脚本,获取需要取值的文本作为环境变量使用,可以修改)
470 | 3. 测试可以对于生成的环境变量取值是否符合预期
471 |
472 | 变量名称: 必填 唯一长度不能超过 20 位
473 | 取值方式:非必填 测试工具提前内置的函数
474 | 固定值:非必填 `取值方式` 为`固定值`时显示该文本,可录入该值
475 | 合并方式: 分为 `前缀`、`后缀`、`替换` ,默认后缀;
476 |
477 | ##### 取值方式
478 |
479 | 1. 固定值:自定义一个固定的值
480 | 2. 页面取值: 脚本录制生成的变量(页面取值),自定义不可设置,
481 | 3. 随机字母 2 位,
482 | 4. 随机字母 4 位,
483 | 5. 随机字母 6 位,
484 | 6. 随机字母 8 位',
485 | 7. 随机数 2 位',
486 | 8. 随机数 4 位',
487 | 9. 随机数 6 位',
488 | 10. 随机数 8 位',
489 | 11. 日期:分秒
490 | 12. 日期:时分
491 | 13. 日期:月日时
492 | 14. 日期:月日时分
493 | 15. 日期:年月日时分
494 | 16. 日期:年月日时分秒
495 |
496 | 
497 |
498 | 系统可设置环境变量的值为`value`,点击`value`既可以设置变量,选择需要设置的变量名称 保存即可
499 |
500 | #### 插件配置
501 |
502 | 为了增强 ETE 测试功能,满足更多的测试场景,我们引入了扩展功能,方便测试自身设定的场景,我们提供自定义插件来满足需求;通过可插拔的使用方式,提升 ete 的扩展能力,全方位覆盖测试场景 可以参考[plugin](/application/plugin)。
503 |
504 | 
505 |
506 | 
507 |
508 | 选择 插件需要执行的生命周期
509 |
510 | 
511 |
512 | ?> 配置完成高级配置后,必须在全局配置开启 `开启高级配置`、`开启插件配置`、`开启环境配置` 总开关,否则高就配置就不会生效,
513 |
--------------------------------------------------------------------------------
/application/example.md:
--------------------------------------------------------------------------------
1 | # 快速开始
2 |
3 | ## 新建项目
4 |
5 | 
6 |
7 | 点击 **新建项目** 创建需要测试的项目名称,如果对 [**定时任务** ](#定时任务配置)配置了定时任务,如果需要及时收到测试结果,可以配置[**钉钉推送**](#设置钉钉推送)
8 |
9 | !> 目前支持钉钉消息推送,后续计划引入企业微信
10 |
11 | ## 设置钉钉推送
12 |
13 | ### 创建钉钉项目群
14 |
15 | 
16 | 
17 |
18 | ### 引入项目只能助手
19 |
20 | 
21 | 
22 | 
23 | 
24 | 
25 |
26 | 安全配置勾选 `加签` ,然后妥善保存密钥, [**新建项目** ](#新建项目)中的 钉钉消息推送需要该值
27 |
28 | 
29 |
30 | 复制 url 连接,获取 url 的参数 token
31 |
32 | ## 创建飞书项目群
33 |
34 | 
35 | 
36 |
37 | 
38 |
39 | 复制 url 连接,获取 url 的参数 token,安全设置勾选 `签名校验` ,然后妥善保存密钥
40 |
41 | ## 定时任务配置
42 |
43 | 
44 | 
45 |
46 | 支持 ete、api、压力三种功能;项目支持多选;可以配置重复执行(每周一、每周二、04 时、23 时),或者仅当前的某一时刻执行(16 时),如果没有勾选,说明当天的指定时间内运行定时任务
47 |
48 | !> 如果定时任务执行过程中,网络错误或者服务器问题,导致的错误,自动间隔 30 分钟在执行一次
49 |
50 | ## 支持功能
51 |
52 | 1. 支持获取当前网络状态 :heavy_check_mark:
53 | 2. 支持请求错误数据收集汇总 :heavy_check_mark:
54 | 3. 支持定时测试任务 :heavy_check_mark:
55 | 4. 设置定时任务错误阀值 80% :heavy_check_mark:
56 | 5. 旧版本提示更新 :heavy_check_mark:
57 | 6. 导出测试报告 :heavy_check_mark:
58 | 7. 飞书消息推送 :heavy_check_mark:
59 | 8. 导出项目 :heavy_check_mark:
60 |
--------------------------------------------------------------------------------
/application/plugin.md:
--------------------------------------------------------------------------------
1 | # 扩展管理
2 |
3 | 为了增强 ETE、API、UI 测试功能,满足更多的测试场景,我们引入了扩展功能,为方便测试自身特定的场景,可以自定义一些测试函数、插件来满足需求;通过可插拔的使用方式,强大的扩展能力,全方位覆盖测试场景。
4 |
5 | ## 函数管理
6 |
7 | 我们在系统内置了一些常见的函数,这些函数是不能修改的,如果还是满足不了用户需求,我们开放了自定义函数功能,开发者只需要按照要求编写自己需要的函数即可
8 |
9 | ```javascript
10 | /**
11 | * [myselfFun 自定义取值函数]
12 | * @version 1.0
13 | * @param {[object]} config [需要修改变量的参数]
14 | * @return {[string||number]} [必须有返回值返回值会作为当前执行参数信息]
15 | */
16 | function myselfFun(config) {
17 | //todo something
18 | return item;
19 | }
20 | ```
21 |
22 | ## 自定义插件
23 |
24 | 插件功能我们为了开发者可以对每一步测试都可以做操作,特地引入了`webpack`使用的`tapable`来管理每一步测试,向外暴露了大量的生命周期,开发者可以根据自身需要自定义自己的插件,以满足测试场景,增强测试功能。
25 |
26 | ### ETE
27 |
28 | #### ETE 插件执行流程图
29 |
30 | 
31 |
32 | #### 生命周期钩子
33 |
34 | 1. 初始化参数前(initBefore):自定义是否需要执行、 自定义 api、 修改配置参数(设置 无头模式,性能分析,行为快照,开启调试,高就配置,插件,超时时间)。
35 | 2. 初始化参数后(initAfter):自定义是否需要执行、 自定义 api、修改配置参数(设置 无头模式,性能分析,行为快照,开启调试,高就配置,插件,超时时间)。
36 | 3. 单步执行前(stepBefore):单个定义过滤执行用例(满足条件)、单个修改参数(在文件中查找)、链接数据库断言、单个自定义断言、自定义 api。
37 | 4. 单步执行后(stepAfter):单个修改断言、单个替换断言、链接数据库断言、自定义 api。
38 | 5. 报告&推送消息前(resultBefore):批量修改测试报告、批量修改推送信息、定义推送规则、自定义推送 api
39 | 6. 报告&推送消息后(resultAfter):自定义 api
40 |
41 | ### example
42 |
43 | ```javascript
44 | function myselfPlugin(config, callBack) {
45 | const itemInfor = {
46 | config: config.config,
47 | params: config.item,
48 | sendNotice: false,
49 | report: '',
50 | isEllipsis: false,
51 | isReplace: false
52 | };
53 | callBack(null, itemInfor);
54 | }
55 | ```
56 |
57 | #### 参数
58 |
59 | ##### config
60 |
61 | | 参数 | 说明 | 类型 | 默认值 | 有效使用周期 |
62 | | ---------- | ---------------------------------- | ------- | ------ | ------------------------------------------------ |
63 | | config | 项目配置信息和项目信息 | object | - | ALL |
64 | | params | 单个执行参数信息 | object | - | stepBefore、stepAfter |
65 | | content | 每一次执行用例测试的 html 页面内容 | string | - | stepBefore、stepAfter |
66 | | report | 测试报告结果 | Array | - | stepBefore、stepAfter、resultBefore、resultAfter |
67 | | lifeCycle | 周期名称 | string | - | ALL |
68 | | sendNotice | 是否在执行完毕后发生消息 | boolean | - | resultBefore、resultAfter |
69 |
70 | #### callBack(param1,param2) `tapable`暴露的周期函数
71 |
72 | ##### param1
73 |
74 | | 参数 | 说明 | 类型 | 默认值 | 有效使用周期 |
75 | | ------ | ------------------------------------------------ | ----------- | ------ | ------------ |
76 | | param1 | 如果参数不为 null,则返回执行错误并且停止执行测试 | null string | - | ALL |
77 |
78 | ##### param2(插件修改返回值)
79 |
80 | | 参数 | 说明 | 类型 | 默认值 | 有效使用周期 |
81 | | ---------- | ------------------------ | ------- | ------ | ----------------------------------- |
82 | | config | 项目配置信息和项目信息 | object | - | initBefore、initAfter |
83 | | params | 单个执行参数 | object | - | stepBefore、stepAfter |
84 | | report | 测试报告结果 | Array | - | stepBefore、stepAfter、resultBefore |
85 | | sendNotice | 是否在执行完毕后发生消息 | boolean | - | resultBefore |
86 | | isEllipsis | 是否省略执行本次测试用例 | boolean | false | stepBefore |
87 | | isReplace | 是否是替换测试报告 | boolean | false | stepBefore、stepAfter |
88 |
89 | ### API
90 |
91 | #### API 插件执行流程图
92 |
93 | 
94 |
95 | #### 生命周期钩子
96 |
97 | 1. 初始化参数前(initBefore):自定义是否需要执行、 自定义 api、 修改配置参数(设置 无头模式,性能分析,行为快照,开启调试,高就配置,插件,超时时间)。
98 | 2. 单步执行前(stepBefore):单个定义过滤执行用例(满足条件)、单个修改参数(在文件中查找)、链接数据库断言、单个自定义断言、自定义 api。
99 | 3. 完成参数初始化且请求前(requesBefore):修改请求头,请求体,或终止操作
100 | 4. 请求返回后(requestAfter):修改返回值
101 | 5. 单步执行后(stepAfter):单个修改断言、单个替换断言、链接数据库断言、自定义 api。
102 | 6. 生成报告&发送消息前(resultBefore):批量修改测试报告、批量修改推送信息、定义推送规则、自定义推送 api
103 | 7. 生成报告&发送消息后(resultAfter):自定义 api
104 |
105 | ##### config
106 |
107 | | 参数 | 说明 | 类型 | 默认值 | 有效使用周期 |
108 | | ----------- | -------------------------- | ------- | ------ | ---------------------------------------------------------------------------- |
109 | | config | 项目配置信息和项目信息 | object | - | ALL |
110 | | itemInfo | 当前单个执行参数信息 | object | - | stepBefore、stepAfter |
111 | | groupConfig | 分组配置 | object | - | stepBefore、stepAfter |
112 | | headers | 单个请求头 信息 | object | - | requesBefore |
113 | | params | 单个请求参数信息 | object | - | requesBefore |
114 | | temporary | 全局变量信息参数,动态添加 | object | - | ALL |
115 | | response | 接口返回值 | object | - | requestAfter |
116 | | interface | 接口类型 | Array | - | requestAfter |
117 | | report | 测试报告结果 | Array | - | stepBefore、requesBefore、requestAfter、stepAfter、resultBefore、resultAfter |
118 | | lifeCycle | 周期名称 | string | - | ALL |
119 | | sendNotice | 是否在执行完毕后发生消息 | boolean | - | resultBefore、resultAfter |
120 |
121 | #### callBack(param1,param2) `tapable`暴露的周期函数
122 |
123 | ##### param1
124 |
125 | | 参数 | 说明 | 类型 | 默认值 | 有效使用周期 |
126 | | ------ | ------------------------------------------------ | ----------- | ------ | ------------ |
127 | | param1 | 如果参数不为 null,则返回执行错误并且停止执行测试 | null string | - | ALL |
128 |
129 | ##### param2(插件修改返回值)
130 |
131 | | 参数 | 说明 | 类型 | 默认值 | 有效使用周期 |
132 | | ----------- | -------------------------- | ------- | ------ | --------------------------------------------------- |
133 | | config | 项目配置信息和项目信息 | object | - | initBefore |
134 | | temporary | 全局变量信息参数,动态添加 | object | - | stepBefore、requesBefore 、requestAfter , stepAfter |
135 | | headers | 单个请求头 信息 | object | - | requesBefore |
136 | | params | 单个执行参数 | object | - | requesBefore |
137 | | itemInfo | 当前单个执行参数信息 | object | - | stepBefore |
138 | | groupConfig | 分组配置 | object | - | stepBefore |
139 | | response | 接口返回值 | object | - | requestAfter |
140 | | report | 测试报告结果 | Array | - | stepBefore、stepAfter、resultBefore |
141 | | sendNotice | 是否在执行完毕后发生消息 | boolean | - | resultBefore |
142 | | isEllipsis | 是否省略执行本次测试用例 | boolean | false | stepBefore |
143 | | isReplace | 是否是替换测试报告 | boolean | false | stepBefore、stepAfter |
144 |
145 | ### 压力
146 |
147 | #### 压力测试插件执行流程图
148 |
149 | 
150 |
151 | #### 生命周期钩子
152 |
153 | 1. 初始化参数前(initBefore):自定义是否需要执行、 自定义 api、 修改配置参数(设置 无头模式,性能分析,行为快照,开启调试,高就配置,插件,超时时间)。
154 | 2. 单步执行前(stepBefore):单个定义过滤执行用例(满足条件)、单个修改参数(在文件中查找)、链接数据库断言、单个自定义断言、自定义 api。
155 | 3. 完成参数初始化且请求前(requesBefore):修改请求头,请求体,或终止操作
156 | 4. 压力测试单步请求前(stepAbBefore):
157 | 5. 压力测试单步请求后(stepAbAfter):
158 | 6. 请求返回后(requestAfter):修改返回值
159 | 7. 单步执行后(stepAfter):单个修改断言、单个替换断言、链接数据库断言、自定义 api。
160 | 8. 生成报告&发送消息前(resultBefore):批量修改测试报告、批量修改推送信息、定义推送规则、自定义推送 api
161 | 9. 生成报告&发送消息后(resultAfter):自定义 api
162 |
163 |
171 |
--------------------------------------------------------------------------------
/application/ui.md:
--------------------------------------------------------------------------------
1 | # UI
2 |
3 |
4 |
5 |
6 | ## 解决痛点
7 |
8 | 对于 ui 设计稿的还原度,是 C 端开发人员的一个工作重点,设计稿还原的好坏对一个项目要求至关重要。而且在页面还原度的问题上,我们经常看到开发经常找 UI 设计师沟通,这就大大提高了沟通成本,导致后续的开发时间压缩;集成测试的 UI 还原功能可以减少开发与 UI 设计师的沟通成本,只需设计把 UI 设计稿与开发的页面按要求,导入集成测试中,然后就会生成测试报告,开发只要根据测试结果修改,就可以修改,节约沟通成本,大大提高了开发人员的效率。
9 |
10 | ## UI 还原测试流程图
11 |
12 | 
13 |
14 | ## 功能列表
15 |
16 | 1. 支持 UI 设计图和网页 url 比较 :heavy_check_mark:
17 | 2. 支持 UI 设计图和截图比较 :heavy_check_mark:
18 | 3. 支持运行还原测试时,排除掉某些项目 :heavy_check_mark:
19 | 4. 支持批量新增 :heavy_check_mark:
20 | 5. 支持设备类型设置,区分 PC 和 Mobile :heavy_check_mark:
21 | 6. 支持自定义对比颜色 :heavy_check_mark:
22 | 7. 支持生成测试报告 :heavy_check_mark:
23 | 8. 支持自定义配置颜色 :heavy_check_mark:
24 | 9. 支持自定义截图设置 cookie :heavy_check_mark:
25 | 10. 支持在线对生成的对比图片做备注 :heavy_check_mark:
26 | 11. 支持在线批量下载对比图片 :heavy_check_mark:
27 |
28 | ## 快速开始
29 |
30 | ### 设置全局对比参数
31 |
32 | - 选择设备类型,设置 dpr
33 | - 设置差异对比时的颜色标注等
34 |
35 | 
36 |
37 | 如果有页面传参需求,可点击`参数配置`进行设置
38 |
39 | 
40 |
41 | ### 新增配置
42 |
43 | 切换至 UI 配置,点击新增,可选单个新增和批量新增
44 |
45 | 
46 |
47 | #### 单个新增
48 |
49 | - 新增 url 与 ui 图比对,上传 ui 设计图,输入网址
50 |
51 | 
52 |
53 | - 新增截图与 ui 图比对,点击右下角`使用图片对比`,上传 ui 设计图,上传开发完成的截图
54 |
55 | 
56 |
57 | #### 批量新增
58 |
59 | - 将需要对比的图片批量上传
60 | - 自行拖动到对应的区域,其中等待或者废弃区会在保存时丢弃
61 |
62 | 
63 |
64 | 
65 |
66 | ### 运行测试
67 |
68 | 对比设置完毕,点击`开始运行UI还原测试`,即可生成对应的测试报告
69 |
70 | 
71 |
72 | !> 注意: 首次运行自动化前,请检查本地是否按装chrome 浏览器
73 |
74 | ### 报告列表
75 |
76 | 测试报告列表,操作栏从左到右分别是 查看报告详情 | 图片备注 | 下载 | 删除
77 |
78 | 
79 |
80 | 点击`查看报告详情`,即可看到还原度信息,原型图、网页截图、差异对比图的展示
81 |
82 | 
83 |
84 | 点击`图片备注`, 即可对每张图片进行备注,方便开发人员和测试人员直接在图片上沟通
85 |
86 | 
87 |
88 | 点击`下载`, 即可将所有图片下载打包
89 |
90 | 
91 |
92 | 点击`删除`, 即可删除当前生成的报告
93 |
--------------------------------------------------------------------------------
/build.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/build.jpeg
--------------------------------------------------------------------------------
/docs/_config.yml:
--------------------------------------------------------------------------------
1 | theme: jekyll-theme-cayman
--------------------------------------------------------------------------------
/docs/index.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/docs/index.md
--------------------------------------------------------------------------------
/google490069ebac017973.html:
--------------------------------------------------------------------------------
1 | google-site-verification: google490069ebac017973.html
--------------------------------------------------------------------------------
/img/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/.DS_Store
--------------------------------------------------------------------------------
/img/build.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/build.jpeg
--------------------------------------------------------------------------------
/img/chrome.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/chrome.png
--------------------------------------------------------------------------------
/img/chrome/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/chrome/.DS_Store
--------------------------------------------------------------------------------
/img/chrome/chrome01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/chrome/chrome01.png
--------------------------------------------------------------------------------
/img/chrome/chrome02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/chrome/chrome02.png
--------------------------------------------------------------------------------
/img/chrome/chrome03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/chrome/chrome03.png
--------------------------------------------------------------------------------
/img/chrome/chrome04.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/chrome/chrome04.jpeg
--------------------------------------------------------------------------------
/img/chrome/chrome05.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/chrome/chrome05.jpeg
--------------------------------------------------------------------------------
/img/dingding/ding01.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/dingding/ding01.jpeg
--------------------------------------------------------------------------------
/img/dingding/ding02.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/dingding/ding02.jpeg
--------------------------------------------------------------------------------
/img/dingding/ding03.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/dingding/ding03.jpeg
--------------------------------------------------------------------------------
/img/dingding/ding04.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/dingding/ding04.jpeg
--------------------------------------------------------------------------------
/img/dingding/ding05.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/dingding/ding05.jpeg
--------------------------------------------------------------------------------
/img/dingding/ding06.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/dingding/ding06.jpeg
--------------------------------------------------------------------------------
/img/dingding/ding07.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/dingding/ding07.jpeg
--------------------------------------------------------------------------------
/img/dingding/ding08.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/dingding/ding08.jpeg
--------------------------------------------------------------------------------
/img/dingding/ding09.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/dingding/ding09.jpeg
--------------------------------------------------------------------------------
/img/ete/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/ete/.DS_Store
--------------------------------------------------------------------------------
/img/ete/ete01.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/ete/ete01.jpeg
--------------------------------------------------------------------------------
/img/ete/ete02.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/ete/ete02.jpeg
--------------------------------------------------------------------------------
/img/ete/ete03.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/ete/ete03.jpeg
--------------------------------------------------------------------------------
/img/ete/ete04.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/ete/ete04.jpeg
--------------------------------------------------------------------------------
/img/ete/ete06.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/ete/ete06.jpeg
--------------------------------------------------------------------------------
/img/ete/ete07.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/ete/ete07.jpeg
--------------------------------------------------------------------------------
/img/ete/ete08.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/ete/ete08.jpeg
--------------------------------------------------------------------------------
/img/ete/ete09.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/ete/ete09.jpeg
--------------------------------------------------------------------------------
/img/ete/ete10.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/ete/ete10.jpeg
--------------------------------------------------------------------------------
/img/ete/ete11.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/ete/ete11.jpeg
--------------------------------------------------------------------------------
/img/ete/ete13.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/ete/ete13.png
--------------------------------------------------------------------------------
/img/ete/ete14.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/ete/ete14.jpeg
--------------------------------------------------------------------------------
/img/ete/ete15.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/ete/ete15.jpeg
--------------------------------------------------------------------------------
/img/ete/ete16.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/ete/ete16.jpeg
--------------------------------------------------------------------------------
/img/ete/ete17.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/ete/ete17.jpeg
--------------------------------------------------------------------------------
/img/ete/ete18.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/ete/ete18.jpeg
--------------------------------------------------------------------------------
/img/ete/ete19.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/ete/ete19.jpeg
--------------------------------------------------------------------------------
/img/ete/ete20.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/ete/ete20.jpeg
--------------------------------------------------------------------------------
/img/ete/ete21.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/ete/ete21.png
--------------------------------------------------------------------------------
/img/ete/ete22.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/ete/ete22.jpeg
--------------------------------------------------------------------------------
/img/ete/ete23.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/ete/ete23.jpeg
--------------------------------------------------------------------------------
/img/ete/ete24.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/ete/ete24.jpeg
--------------------------------------------------------------------------------
/img/ete/ete25.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/ete/ete25.jpeg
--------------------------------------------------------------------------------
/img/ete/ete25.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/ete/ete25.jpg
--------------------------------------------------------------------------------
/img/ete/ete26.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/ete/ete26.jpeg
--------------------------------------------------------------------------------
/img/ete/ete27.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/ete/ete27.jpeg
--------------------------------------------------------------------------------
/img/ete/ete28.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/ete/ete28.jpeg
--------------------------------------------------------------------------------
/img/ete/ete29.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/ete/ete29.jpeg
--------------------------------------------------------------------------------
/img/ete/ete30.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/ete/ete30.jpeg
--------------------------------------------------------------------------------
/img/ete/ete30.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/ete/ete30.jpg
--------------------------------------------------------------------------------
/img/ete/ete31.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/ete/ete31.jpeg
--------------------------------------------------------------------------------
/img/ete/ete32.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/ete/ete32.jpeg
--------------------------------------------------------------------------------
/img/ete/ete33.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/ete/ete33.jpeg
--------------------------------------------------------------------------------
/img/ete/ete34.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/ete/ete34.jpeg
--------------------------------------------------------------------------------
/img/ete/ete35.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/ete/ete35.jpeg
--------------------------------------------------------------------------------
/img/ete/ete36.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/ete/ete36.jpeg
--------------------------------------------------------------------------------
/img/ete/ete37.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/ete/ete37.jpeg
--------------------------------------------------------------------------------
/img/ete/ete38.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/ete/ete38.jpeg
--------------------------------------------------------------------------------
/img/etereport.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/etereport.jpeg
--------------------------------------------------------------------------------
/img/etereslist.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/etereslist.jpeg
--------------------------------------------------------------------------------
/img/etest.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/etest.png
--------------------------------------------------------------------------------
/img/etetest.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/etetest.png
--------------------------------------------------------------------------------
/img/feishu/001.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/feishu/001.jpeg
--------------------------------------------------------------------------------
/img/feishu/002.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/feishu/002.jpeg
--------------------------------------------------------------------------------
/img/feishu/003.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/feishu/003.jpeg
--------------------------------------------------------------------------------
/img/group/group01.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/group/group01.jpeg
--------------------------------------------------------------------------------
/img/group/group02.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/group/group02.jpeg
--------------------------------------------------------------------------------
/img/group/group03.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/group/group03.jpeg
--------------------------------------------------------------------------------
/img/home.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/home.jpeg
--------------------------------------------------------------------------------
/img/icon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/icon.ico
--------------------------------------------------------------------------------
/img/logo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/logo.jpg
--------------------------------------------------------------------------------
/img/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/logo.png
--------------------------------------------------------------------------------
/img/logo1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/logo1.jpg
--------------------------------------------------------------------------------
/img/logo3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/logo3.png
--------------------------------------------------------------------------------
/img/plugin/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/plugin/.DS_Store
--------------------------------------------------------------------------------
/img/plugin/ab.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/plugin/ab.png
--------------------------------------------------------------------------------
/img/plugin/api.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/plugin/api.jpeg
--------------------------------------------------------------------------------
/img/plugin/ete.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/plugin/ete.jpeg
--------------------------------------------------------------------------------
/img/sgbfyxr.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/sgbfyxr.png
--------------------------------------------------------------------------------
/img/task.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/task.jpeg
--------------------------------------------------------------------------------
/img/task/task01.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/task/task01.jpeg
--------------------------------------------------------------------------------
/img/task/task02.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/task/task02.jpeg
--------------------------------------------------------------------------------
/img/ui.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/ui.png
--------------------------------------------------------------------------------
/img/ui/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/ui/.DS_Store
--------------------------------------------------------------------------------
/img/ui/01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/ui/01.png
--------------------------------------------------------------------------------
/img/ui/02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/ui/02.png
--------------------------------------------------------------------------------
/img/ui/03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/ui/03.png
--------------------------------------------------------------------------------
/img/ui/04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/ui/04.png
--------------------------------------------------------------------------------
/img/ui/05.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/ui/05.png
--------------------------------------------------------------------------------
/img/ui/06.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/ui/06.png
--------------------------------------------------------------------------------
/img/ui/07.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/ui/07.png
--------------------------------------------------------------------------------
/img/ui/08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/ui/08.png
--------------------------------------------------------------------------------
/img/ui/09.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/ui/09.png
--------------------------------------------------------------------------------
/img/ui/10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/ui/10.png
--------------------------------------------------------------------------------
/img/ui/11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/ui/11.png
--------------------------------------------------------------------------------
/img/ui/12.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/ui/12.png
--------------------------------------------------------------------------------
/img/uires.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/uires.png
--------------------------------------------------------------------------------
/img/wx.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/wx.jpg
--------------------------------------------------------------------------------
/img/截屏2021-08-13 下午10.53.16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alltheblue/docs/672761f3506e131d1f09a2de1a5d6c3b86c9f159/img/截屏2021-08-13 下午10.53.16.png
--------------------------------------------------------------------------------
/index.css:
--------------------------------------------------------------------------------
1 | .app-name-link img {
2 | width: 200px;
3 | }
4 | img {
5 | margin: 4px;
6 | }
7 |
8 | .etest-img {
9 | display: none;
10 | }
11 |
12 | .etest-col-2 {
13 | width: 20%;
14 | box-shadow: 1px 1px 10px rgba(0, 0, 0, 0.05);
15 | }
16 | .etest-col-3 {
17 | width: 30%;
18 | box-shadow: 1px 1px 10px rgba(0, 0, 0, 0.05);
19 | }
20 | .etest-col-4 {
21 | width: 40%;
22 | box-shadow: 1px 1px 10px rgba(0, 0, 0, 0.05);
23 | }
24 | .etest-col-5 {
25 | width: 50%;
26 | }
27 | .etest-col-6 {
28 | width: 60%;
29 | }
30 | .etest-col-7 {
31 | width: 70%;
32 | box-shadow: 1px 1px 10px rgba(0, 0, 0, 0.05);
33 | }
34 |
35 | .etest-col-3,
36 | img[title='::etest-col-3'] {
37 | width: 30%;
38 | box-shadow: 1px 1px 10px rgba(0, 0, 0, 0.05);
39 | }
40 |
41 | .etest-col-5,
42 | img[title='::etest-col-5'] {
43 | width: 50%;
44 | box-shadow: 1px 1px 10px rgba(0, 0, 0, 0.05);
45 | }
46 |
47 | .etest-col-8,
48 | img[title='::etest-col-8'] {
49 | width: 80%;
50 | box-shadow: 1px 1px 10px rgba(0, 0, 0, 0.05);
51 | }
52 |
53 | .etest-col-9 {
54 | width: 90%;
55 | }
56 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
" + NO_DATA_TEXT + "
"); 249 | if (options.hideOtherSidebarContent) { 250 | $sidebarNav.classList.add('hide'); 251 | $appName.classList.add('hide'); 252 | } 253 | } 254 | 255 | function bindEvents() { 256 | var $search = Docsify.dom.find('div.search'); 257 | var $input = Docsify.dom.find($search, 'input'); 258 | var $inputWrap = Docsify.dom.find($search, '.input-wrap'); 259 | 260 | var timeId; 261 | // Prevent to Fold sidebar 262 | Docsify.dom.on( 263 | $search, 264 | 'click', 265 | function (e) { return e.target.tagName !== 'A' && e.stopPropagation(); } 266 | ); 267 | Docsify.dom.on($input, 'input', function (e) { 268 | clearTimeout(timeId); 269 | timeId = setTimeout(function (_) { return doSearch(e.target.value.trim()); }, 100); 270 | }); 271 | Docsify.dom.on($inputWrap, 'click', function (e) { 272 | // Click input outside 273 | if (e.target.tagName !== 'INPUT') { 274 | $input.value = ''; 275 | doSearch(); 276 | } 277 | }); 278 | } 279 | 280 | function updatePlaceholder(text, path) { 281 | var $input = Docsify.dom.getNode('.search input[type="search"]'); 282 | 283 | if (!$input) { 284 | return 285 | } 286 | if (typeof text === 'string') { 287 | $input.placeholder = text; 288 | } else { 289 | var match = Object.keys(text).filter(function (key) { return path.indexOf(key) > -1; })[0]; 290 | $input.placeholder = text[match]; 291 | } 292 | } 293 | 294 | function updateNoData(text, path) { 295 | if (typeof text === 'string') { 296 | NO_DATA_TEXT = text; 297 | } else { 298 | var match = Object.keys(text).filter(function (key) { return path.indexOf(key) > -1; })[0]; 299 | NO_DATA_TEXT = text[match]; 300 | } 301 | } 302 | 303 | function updateOptions(opts) { 304 | options = opts; 305 | } 306 | 307 | function init(opts, vm) { 308 | var keywords = vm.router.parse().query.s; 309 | 310 | updateOptions(opts); 311 | style(); 312 | tpl(keywords); 313 | bindEvents(); 314 | keywords && setTimeout(function (_) { return doSearch(keywords); }, 500); 315 | } 316 | 317 | function update(opts, vm) { 318 | updateOptions(opts); 319 | updatePlaceholder(opts.placeholder, vm.route.path); 320 | updateNoData(opts.noData, vm.route.path); 321 | } 322 | 323 | var CONFIG = { 324 | placeholder: 'Type to search', 325 | noData: 'No Results!', 326 | paths: 'auto', 327 | depth: 2, 328 | maxAge: 86400000, // 1 day 329 | hideOtherSidebarContent: false, 330 | namespace: undefined 331 | }; 332 | 333 | var install = function (hook, vm) { 334 | var util = Docsify.util; 335 | var opts = vm.config.search || CONFIG; 336 | 337 | if (Array.isArray(opts)) { 338 | CONFIG.paths = opts; 339 | } else if (typeof opts === 'object') { 340 | CONFIG.paths = Array.isArray(opts.paths) ? opts.paths : 'auto'; 341 | CONFIG.maxAge = util.isPrimitive(opts.maxAge) ? opts.maxAge : CONFIG.maxAge; 342 | CONFIG.placeholder = opts.placeholder || CONFIG.placeholder; 343 | CONFIG.noData = opts.noData || CONFIG.noData; 344 | CONFIG.depth = opts.depth || CONFIG.depth; 345 | CONFIG.hideOtherSidebarContent = opts.hideOtherSidebarContent || CONFIG.hideOtherSidebarContent; 346 | CONFIG.namespace = opts.namespace || CONFIG.namespace; 347 | } 348 | 349 | var isAuto = CONFIG.paths === 'auto'; 350 | 351 | hook.mounted(function (_) { 352 | init(CONFIG, vm); 353 | !isAuto && init$1(CONFIG, vm); 354 | }); 355 | hook.doneEach(function (_) { 356 | update(CONFIG, vm); 357 | isAuto && init$1(CONFIG, vm); 358 | }); 359 | }; 360 | 361 | $docsify.plugins = [].concat(install, $docsify.plugins); 362 | 363 | }()); -------------------------------------------------------------------------------- /lib/version.json: -------------------------------------------------------------------------------- 1 | { 2 | "support": ["0.2.2"], 3 | "upgrade": ["0.0.0"], 4 | "newest": "v1.0.0" 5 | } 6 | -------------------------------------------------------------------------------- /lib/vue.css: -------------------------------------------------------------------------------- 1 | @import url("https://fonts.googleapis.com/css?family=Roboto+Mono|Source+Sans+Pro:300,400,600");*{-webkit-font-smoothing:antialiased;-webkit-overflow-scrolling:touch;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-text-size-adjust:none;-webkit-touch-callout:none;box-sizing:border-box}body:not(.ready){overflow:hidden}body:not(.ready) .app-nav,body:not(.ready)>nav,body:not(.ready) [data-cloak]{display:none}div#app{font-size:30px;font-weight:lighter;margin:40vh auto;text-align:center}div#app:empty:before{content:"Loading..."}img.emoji{height:1.2em}img.emoji,span.emoji{vertical-align:middle}span.emoji{font-family:Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1.2em}.progress{background-color:#42b983;background-color:var(--theme-color,#42b983);height:2px;left:0;position:fixed;right:0;top:0;transition:width .2s,opacity .4s;width:0;z-index:999999}.search .search-keyword,.search a:hover{color:#42b983;color:var(--theme-color,#42b983)}.search .search-keyword{font-style:normal;font-weight:700}body,html{height:100%}body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:#34495e;font-family:Source Sans Pro,Helvetica Neue,Arial,sans-serif;font-size:15px;letter-spacing:0;margin:0;overflow-x:hidden}img{max-width:100%}a[disabled]{cursor:not-allowed;opacity:.6}kbd{border:1px solid #ccc;border-radius:3px;display:inline-block;font-size:12px!important;line-height:12px;margin-bottom:3px;padding:3px 5px;vertical-align:middle}li input[type=checkbox]{margin:0 .2em .25em 0;vertical-align:middle}.app-nav{margin:25px 60px 0 0;position:absolute;right:0;text-align:right;z-index:10}.app-nav.no-badge{margin-right:25px}.app-nav p{margin:0}.app-nav>a{margin:0 1rem;padding:5px 0}.app-nav li,.app-nav ul{display:inline-block;list-style:none;margin:0}.app-nav a{color:inherit;font-size:16px;text-decoration:none;transition:color .3s}.app-nav a.active,.app-nav a:hover{color:#42b983;color:var(--theme-color,#42b983)}.app-nav a.active{border-bottom:2px solid #42b983;border-bottom:2px solid var(--theme-color,#42b983)}.app-nav li{display:inline-block;margin:0 1rem;padding:5px 0;position:relative;cursor:pointer}.app-nav li ul{background-color:#fff;border:1px solid;border-color:#ddd #ddd #ccc;border-radius:4px;box-sizing:border-box;display:none;max-height:calc(100vh - 61px);overflow-y:auto;padding:10px 0;position:absolute;right:-15px;text-align:left;top:100%;white-space:nowrap}.app-nav li ul li{display:block;font-size:14px;line-height:1rem;margin:8px 14px;white-space:nowrap}.app-nav li ul a{display:block;font-size:inherit;margin:0;padding:0}.app-nav li ul a.active{border-bottom:0}.app-nav li:hover ul{display:block}.github-corner{border-bottom:0;position:fixed;right:0;text-decoration:none;top:0;z-index:1}.github-corner:hover .octo-arm{animation:octocat-wave .56s ease-in-out}.github-corner svg{color:#fff;fill:#42b983;fill:var(--theme-color,#42b983);height:80px;width:80px}main{display:block;position:relative;width:100vw;height:100%;z-index:0}main.hidden{display:none}.anchor{display:inline-block;text-decoration:none;transition:all .3s}.anchor span{color:#34495e}.anchor:hover{text-decoration:underline}.sidebar{border-right:1px solid rgba(0,0,0,.07);overflow-y:auto;padding:40px 0 0;position:absolute;top:0;bottom:0;left:0;transition:transform .25s ease-out;width:300px;z-index:20}.sidebar>h1{margin:0 auto 1rem;font-size:1.5rem;font-weight:300;text-align:center}.sidebar>h1 a{color:inherit;text-decoration:none}.sidebar>h1 .app-nav{display:block;position:static}.sidebar .sidebar-nav{line-height:2em;padding-bottom:40px}.sidebar li.collapse .app-sub-sidebar{display:none}.sidebar ul{margin:0 0 0 15px;padding:0}.sidebar li>p{font-weight:700;margin:0}.sidebar ul,.sidebar ul li{list-style:none}.sidebar ul li a{border-bottom:none;display:block}.sidebar ul li ul{padding-left:20px}.sidebar::-webkit-scrollbar{width:4px}.sidebar::-webkit-scrollbar-thumb{background:transparent;border-radius:4px}.sidebar:hover::-webkit-scrollbar-thumb{background:hsla(0,0%,53.3%,.4)}.sidebar:hover::-webkit-scrollbar-track{background:hsla(0,0%,53.3%,.1)}.sidebar-toggle{background-color:transparent;background-color:hsla(0,0%,100%,.8);border:0;outline:none;padding:10px;position:absolute;bottom:0;left:0;text-align:center;transition:opacity .3s;width:284px;z-index:30;cursor:pointer}.sidebar-toggle:hover .sidebar-toggle-button{opacity:.4}.sidebar-toggle span{background-color:#42b983;background-color:var(--theme-color,#42b983);display:block;margin-bottom:4px;width:16px;height:2px}body.sticky .sidebar,body.sticky .sidebar-toggle{position:fixed}.content{padding-top:60px;position:absolute;top:0;right:0;bottom:0;left:300px;transition:left .25s ease}.markdown-section{margin:0 auto;max-width:80%;padding:30px 15px 40px;position:relative}.markdown-section>*{box-sizing:border-box;font-size:inherit}.markdown-section>:first-child{margin-top:0!important}.markdown-section hr{border:none;border-bottom:1px solid #eee;margin:2em 0}.markdown-section iframe{border:1px solid #eee;width:1px;min-width:100%}.markdown-section table{border-collapse:collapse;border-spacing:0;display:block;margin-bottom:1rem;overflow:auto;width:100%}.markdown-section th{font-weight:700}.markdown-section td,.markdown-section th{border:1px solid #ddd;padding:6px 13px}.markdown-section tr{border-top:1px solid #ccc}.markdown-section p.tip,.markdown-section tr:nth-child(2n){background-color:#f8f8f8}.markdown-section p.tip{border-bottom-right-radius:2px;border-left:4px solid #f66;border-top-right-radius:2px;margin:2em 0;padding:12px 24px 12px 30px;position:relative}.markdown-section p.tip:before{background-color:#f66;border-radius:100%;color:#fff;content:"!";font-family:Dosis,Source Sans Pro,Helvetica Neue,Arial,sans-serif;font-size:14px;font-weight:700;left:-12px;line-height:20px;position:absolute;height:20px;width:20px;text-align:center;top:14px}.markdown-section p.tip code{background-color:#efefef}.markdown-section p.tip em{color:#34495e}.markdown-section p.warn{background:rgba(66,185,131,.1);border-radius:2px;padding:1rem}.markdown-section ul.task-list>li{list-style-type:none}body.close .sidebar{transform:translateX(-300px)}body.close .sidebar-toggle{width:auto}body.close .content{left:0}@media print{.app-nav,.github-corner,.sidebar,.sidebar-toggle{display:none}}@media screen and (max-width:768px){.github-corner,.sidebar,.sidebar-toggle{position:fixed}.app-nav{margin-top:16px}.app-nav li ul{top:30px}main{height:auto;min-height:100vh;overflow-x:hidden}.sidebar{left:-300px;transition:transform .25s ease-out}.content{left:0;max-width:100vw;position:static;padding-top:20px;transition:transform .25s ease}.app-nav,.github-corner{transition:transform .25s ease-out}.sidebar-toggle{background-color:transparent;width:auto;padding:30px 30px 10px 10px}body.close .sidebar{transform:translateX(300px)}body.close .sidebar-toggle{background-color:hsla(0,0%,100%,.8);transition:background-color 1s;width:284px;padding:10px}body.close .content{transform:translateX(300px)}body.close .app-nav,body.close .github-corner{display:none}.github-corner:hover .octo-arm{animation:none}.github-corner .octo-arm{animation:octocat-wave .56s ease-in-out}}@keyframes octocat-wave{0%,to{transform:rotate(0)}20%,60%{transform:rotate(-25deg)}40%,80%{transform:rotate(10deg)}}section.cover{position:relative;align-items:center;background-position:50%;background-repeat:no-repeat;background-size:cover;min-height:100vh;width:100%;display:none}section.cover.show{display:flex}section.cover.has-mask .mask{background-color:#fff;opacity:.8;position:absolute;top:0;bottom:0;width:100%}section.cover .cover-main{flex:1;margin:0 16px;text-align:center;position:relative}section.cover a{color:inherit}section.cover a,section.cover a:hover{text-decoration:none}section.cover p{line-height:1.5rem;margin:1em 0}section.cover h1{color:inherit;font-size:2.5rem;font-weight:300;margin:.625rem 0 2.5rem;position:relative;text-align:center}section.cover h1 a{display:block}section.cover h1 small{bottom:-.4375rem;font-size:1rem;position:absolute}section.cover blockquote{font-size:1.5rem;text-align:center}section.cover ul{line-height:1.8;list-style-type:none;margin:1em auto;max-width:500px;padding:0}section.cover .cover-main>p:last-child a{border-radius:2rem;border:1px solid #42b983;border-color:var(--theme-color,#42b983);box-sizing:border-box;color:#42b983;color:var(--theme-color,#42b983);display:inline-block;font-size:1.05rem;letter-spacing:.1rem;margin:.5rem 1rem;padding:.75em 2rem;text-decoration:none;transition:all .15s ease}section.cover .cover-main>p:last-child a:last-child{background-color:#42b983;background-color:var(--theme-color,#42b983);color:#fff}section.cover .cover-main>p:last-child a:last-child:hover{color:inherit;opacity:.8}section.cover .cover-main>p:last-child a:hover{color:inherit}section.cover blockquote>p>a{border-bottom:2px solid #42b983;border-bottom:2px solid var(--theme-color,#42b983);transition:color .3s}section.cover blockquote>p>a:hover{color:#42b983;color:var(--theme-color,#42b983)}.sidebar,body{background-color:#fff}.sidebar{color:#364149}.sidebar li{margin:6px 0}.sidebar ul li a{color:#505d6b;font-size:14px;font-weight:400;overflow:hidden;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}.sidebar ul li a:hover{text-decoration:underline}.sidebar ul li ul{padding:0}.sidebar ul li.active>a{border-right:2px solid;color:#42b983;color:var(--theme-color,#42b983);font-weight:600}.app-sub-sidebar li:before{content:"-";padding-right:4px;float:left}.markdown-section h1,.markdown-section h2,.markdown-section h3,.markdown-section h4,.markdown-section strong{color:#2c3e50;font-weight:600}.markdown-section a{color:#42b983;color:var(--theme-color,#42b983);font-weight:600}.markdown-section h1{font-size:2rem;margin:0 0 1rem}.markdown-section h2{font-size:1.75rem;margin:45px 0 .8rem}.markdown-section h3{font-size:1.5rem;margin:40px 0 .6rem}.markdown-section h4{font-size:1.25rem}.markdown-section h5{font-size:1rem}.markdown-section h6{color:#777;font-size:1rem}.markdown-section figure,.markdown-section p{margin:1.2em 0}.markdown-section ol,.markdown-section p,.markdown-section ul{line-height:1.6rem;word-spacing:.05rem}.markdown-section ol,.markdown-section ul{padding-left:1.5rem}.markdown-section blockquote{border-left:4px solid #42b983;border-left:4px solid var(--theme-color,#42b983);color:#858585;margin:2em 0;padding-left:20px}.markdown-section blockquote p{font-weight:600;margin-left:0}.markdown-section iframe{margin:1em 0}.markdown-section em{color:#7f8c8d}.markdown-section code,.markdown-section output:after,.markdown-section pre{font-family:Roboto Mono,Monaco,courier,monospace}.markdown-section code,.markdown-section pre{background-color:#f8f8f8}.markdown-section output,.markdown-section pre{margin:1.2em 0;position:relative}.markdown-section output,.markdown-section pre>code{border-radius:2px;display:block}.markdown-section output:after,.markdown-section pre>code{-moz-osx-font-smoothing:initial;-webkit-font-smoothing:initial}.markdown-section code{border-radius:2px;color:#e96900;margin:0 2px;padding:3px 5px;white-space:pre-wrap}.markdown-section>:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6) code{font-size:.8rem}.markdown-section pre{padding:0 1.4rem;line-height:1.5rem;overflow:auto;word-wrap:normal}.markdown-section pre>code{color:#525252;font-size:.8rem;padding:2.2em 5px;line-height:inherit;margin:0 2px;max-width:inherit;overflow:inherit;white-space:inherit}.markdown-section output{padding:1.7rem 1.4rem;border:1px dotted #ccc}.markdown-section output>:first-child{margin-top:0}.markdown-section output>:last-child{margin-bottom:0}.markdown-section code:after,.markdown-section code:before,.markdown-section output:after,.markdown-section output:before{letter-spacing:.05rem}.markdown-section output:after,.markdown-section pre:after{color:#ccc;font-size:.6rem;font-weight:600;height:15px;line-height:15px;padding:5px 10px 0;position:absolute;right:0;text-align:right;top:0;content:attr(data-lang)}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#8e908c}.token.namespace{opacity:.7}.token.boolean,.token.number{color:#c76b29}.token.punctuation{color:#525252}.token.property{color:#c08b30}.token.tag{color:#2973b7}.token.string{color:#42b983;color:var(--theme-color,#42b983)}.token.selector{color:#6679cc}.token.attr-name{color:#2973b7}.language-css .token.string,.style .token.string,.token.entity,.token.url{color:#22a2c9}.token.attr-value,.token.control,.token.directive,.token.unit{color:#42b983;color:var(--theme-color,#42b983)}.token.function,.token.keyword{color:#e96900}.token.atrule,.token.regex,.token.statement{color:#22a2c9}.token.placeholder,.token.variable{color:#3d8fd1}.token.deleted{text-decoration:line-through}.token.inserted{border-bottom:1px dotted #202746;text-decoration:none}.token.italic{font-style:italic}.token.bold,.token.important{font-weight:700}.token.important{color:#c94922}.token.entity{cursor:help}code .token{-moz-osx-font-smoothing:initial;-webkit-font-smoothing:initial;min-height:1.5rem;position:relative;left:auto} -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "eTest-docs", 3 | "version": "1.0.0", 4 | "description": "一个简单易用的集成测试应用", 5 | "homepage": "https://alltheblue.github.io/docs/#/", 6 | "main": "index.js", 7 | "keywords": [ 8 | "ETE", 9 | "UI", 10 | "API", 11 | "Ab", 12 | "test", 13 | "eTest" 14 | ], 15 | "author": "xflihaibo", 16 | "license": "ISC" 17 | } 18 | --------------------------------------------------------------------------------