-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
303 lines (229 loc) · 12.1 KB
/
index.html
File metadata and controls
303 lines (229 loc) · 12.1 KB
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
<!DOCTYPE html>
<html lang="zh-CN">
<!-- Head tag -->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<!--Description-->
<meta name="description" content="个人博客、blog、日记、daily、杂记、mysql、oracle、java、python、spring、springmvc、quartz、jvm、">
<!--Author-->
<meta name="author" content="longjie">
<!--Open Graph Title-->
<meta property="og:title" content="系统上线测试初入坑"/>
<!--Open Graph Description-->
<meta property="og:description" content="个人博客、blog、日记、daily、杂记、mysql、oracle、java、python、spring、springmvc、quartz、jvm、" />
<!--Open Graph Site Name-->
<meta property="og:site_name" content="Bug Maker' Blog"/>
<!--Type page-->
<meta property="og:type" content="article" />
<!--Page Cover-->
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<!-- 百度统计 -->
<script>
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?c0451e16533956173997b85f7a8de666";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
<!-- Title -->
<title>系统上线测试初入坑 - Bug Maker' Blog</title>
<link rel="shortcut icon" href="/images/logo.ico">
<!--font-awesome-->
<link rel="stylesheet" href="//cdn.bootcss.com/font-awesome/4.5.0/css/font-awesome.min.css">
<!-- Custom CSS/Sass -->
<link rel="stylesheet" href="/css/style.css">
</head>
<body>
<!-- Nav -->
<header class="site-header">
<div class="header-inside">
<div class="logo">
<a href="/" rel="home">
<img src="http://pa3mctxwu.bkt.clouddn.com/ico.jpg" alt="Bug Maker' Blog" height="60">
</a>
</div>
<a class="header-name" href="/">
<span>Bug Maker' Blog</span>
</a>
<!-- navbar -->
<nav class="navbar">
<!-- nav links -->
<div class="collapse">
<ul class="navbar-nav">
<li>
<a href="/.">
<i class="fa fa-home "></i>
首页
</a>
</li>
<li>
<a href="/archives">
<i class="fa fa-archive "></i>
归档
</a>
</li>
<li>
<a href="/about">
<i class="fa fa-user "></i>
关于
</a>
</li>
<li>
<a href="/project">
<i class="fa fa-folder-open "></i>
项目
</a>
</li>
<li>
<a href="/photo">
<i class="fa fa-photo "></i>
相册
</a>
</li>
<li>
<a href="/guestbook">
<i class="fa fa-edit "></i>
留言
</a>
</li>
<li>
<a href="/atom.xml">
<i class="fa fa-send "></i>
RSS
</a>
</li>
</ul>
</div>
<!-- /.navbar-collapse -->
</nav>
<div class="button-wrap">
<button class="menu-toggle">Primary Menu</button>
</div>
</div>
</header>
<!-- Main Content -->
<div class="content-area">
<div class="post">
<!-- Post Content -->
<div class="container">
<article>
<!-- Title date & tags -->
<div class="post-header">
<h1 class="entry-title">
系统上线测试初入坑
</h1>
</div>
<p class="a-posted-on">
Bug Maker
</p>
<p class="a-posted-on">
2018-06-16
</p>
<!-- Post Main Content -->
<div class="entry-content">
<p><img src="http://pa3mctxwu.bkt.clouddn.com//blog5/pic1.jpg" alt="Markdown"><br><a id="more"></a></p>
<h3 id="测试"><a href="#测试" class="headerlink" title="测试"></a>测试</h3><p>把应用开发完之后,将系统部署到测试环境;配置均为实际生产环境;其中代码中请求云之家API用到了定时任务,有一个定时任务为每月一号凌晨执行,在测试的时候便把服务器时间改为2018-06-30 23:58:55,然后很诡异的是请求云之家API一直出现异常,在获取云之家AccessToken一直抛出异常,更痛苦的是API只说请求失败,没有说明失败原因。把代码和配置捋了一遍,发现并没有什么不妥,足足用了一个小时找问题,问题出在<strong>服务器时间</strong>上,因为在请求云之家API时需要带上时间戳,而时间戳是根据系统时间生成的,云之家校验我们请求带过去的时间戳,发现时间是无效的,所以一直返回请求失败。这次入坑,真心觉得测试需要足够的耐心和缜密的逻辑,自己需要出色地完成任务还需要多加历练,吃一堑长一智。</p>
<hr>
<h4 id="扯淡"><a href="#扯淡" class="headerlink" title="扯淡"></a>扯淡</h4><p>最近主要在给珠光弄移动审批系统集成开发,珠光一直是用用友的OA系统,由于用友之前给他们做的系统只适用于PC端,现在他们想把用友的系统抛弃,改用明源和金蝶的OA系统,我们金蝶负责开发珠光的单据的<strong>移动</strong>审批。</p>
<hr>
<p>下文所说的<珠光OA系统>是指<strong>现在到过渡期</strong>使用的<用友>开发的旧OA系统,<strong>后期</strong>为<明源>开发的新OA系统;<本地应用>为我们开发的系统</p>
<hr>
<p>我们只负责<strong>移动端</strong>审批开发,这里需要说一下,待办单据不单单在我们开发的移动端上审批,还可以通过珠光OA系统进行审批。<br>我们工作是将珠光OA系统中待办单据以待办消息的形式推送到云之家上,但是珠光OA系统如果有新的待办单据或新的已办单据不会通知我们,我们只能通过定时任务不断轮询获取数据,并将数据保存到本地,然后向云之家推送待办消息,同时将我们本地的已办单据与珠光OA系统中的已办单据列表进行比对,如果发现我们本地某条待办单据出现在珠光OA系统的已办单据列表中(出现这种情况的原因只有一个,该待办在珠光OA系统上已经完成审批),我们则需要将云之家推送的待办消息转为已办消息。当用户在移动端提交审批时,本地应用后台请求珠光OA系统接口,如果审批成功,则请求云之家接口,将待办消息转为已办消息,如果状态转换成功,则将本地待办转为已办。注意,<strong>用户查看单据是通过阅读云之家的待办消息</strong>。</p>
<h6 id="为了下文描述方便,在这里作一下定义:"><a href="#为了下文描述方便,在这里作一下定义:" class="headerlink" title="为了下文描述方便,在这里作一下定义:"></a>为了下文描述方便,在这里作一下定义:</h6><table>
<thead>
<tr>
<th>简称</th>
<th>描述</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>A</strong></td>
<td>我们负责开发应用后台</td>
</tr>
<tr>
<td><strong>B</strong></td>
<td>珠光OA系统</td>
</tr>
<tr>
<td><strong>C</strong></td>
<td>云之家,金蝶的OA产品</td>
</tr>
<tr>
<td><strong>UI</strong></td>
<td>我们开发的用户端</td>
</tr>
<tr>
<td><strong>DA1</strong></td>
<td>本地应用系统的待办单据</td>
</tr>
<tr>
<td><strong>DA2</strong></td>
<td>本地应用系统的已办单据</td>
</tr>
<tr>
<td><strong>DB1</strong></td>
<td>珠光OA系统的待办单据 </td>
</tr>
<tr>
<td><strong>DB2</strong></td>
<td>珠光OA系统的已办单据</td>
</tr>
<tr>
<td><strong>MSG1</strong></td>
<td>云之家的待办消息</td>
</tr>
<tr>
<td><strong>MSG2</strong></td>
<td>云之家的已办消息</td>
</tr>
</tbody>
</table>
<h3 id="云之家消息处理"><a href="#云之家消息处理" class="headerlink" title="云之家消息处理"></a>云之家消息处理</h3><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line">sequenceDiagram</span><br><span class="line">A->>B: 请求获取DB1</span><br><span class="line">B->>A: 返回DB1</span><br><span class="line">A->>A: DA1与DB1比对,过滤已推送的DB1</span><br><span class="line">A->>C: 推送过滤后的DB1</span><br><span class="line">A->>B: 请求获取DB2</span><br><span class="line">B->>A: 返回DB2</span><br><span class="line">A->>A: DA1与DB2比对,筛选DA1</span><br><span class="line">A->>C: 请求MSG1转换为MSG2</span><br><span class="line">C->>A:状态转换成功</span><br><span class="line">A->>A:DA1转为DA2</span><br></pre></td></tr></table></figure>
<h3 id="待办单据审批"><a href="#待办单据审批" class="headerlink" title="待办单据审批"></a>待办单据审批</h3><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line">sequenceDiagram</span><br><span class="line">UI->>A: 请求审批</span><br><span class="line">A->>B: 请求DB1转为DB2</span><br><span class="line">B->>A:状态转换成功</span><br><span class="line">A->>C:请求MSG1转为MSG2</span><br><span class="line">C->>A:状态转换成功</span><br><span class="line">A->>A:DA1转为DA2</span><br><span class="line">A->>UI:返回审批结果</span><br></pre></td></tr></table></figure>
<hr>
<h3 id="结言"><a href="#结言" class="headerlink" title="结言"></a>结言</h3><p>审批本身逻辑不复杂,但是在上述中所述的情况下,需要保持多个平台数据的一致性,就需要定时从珠光OA系统中同步数据,在同步完数据之后根据情况向多个平台进行相关操作<br>,由于审批仅限于公司成员,所以谈不上并发,加上对单据生成与云之家消息推送的时间间隔要求不高,通过定时任务进行实现是没有问题的。</p>
</div>
</article>
</div>
<!-- Pre or Next -->
<div class="container" >
<ul class="pager">
<li class="previous">
<a href="/2018/07/14/blog6/" rel="prev">下一篇</a>
</li>
<li class="next">
<a href="/2018/06/11/blog4/" rel="prev">上一篇</a>
</li>
</ul>
</div>
<!-- Comments -->
<div class="container">
<section id="comment">
<!-- <h1 class="title">留言</h1> -->
</section>
</div>
</div>
</div>
<!-- Footer -->
<!-- Footer -->
<footer class="site-info">
<p>
<span>Bug Maker' Blog © 2018 - 2018</span>
</p>
<p>
<span>Powered by <a href="https://hexo.io/">Hexo</a> with Theme believe</span>
</p>
<script async src="//dn-lbstatics.qbox.me/busuanzi/2.3/busuanzi.pure.mini.js"></script>
本站总访问量<span id="busuanzi_value_site_pv"></span>次
<!-- 本站访客数<span id="busuanzi_value_site_uv"></span>人次 -->
</footer>
<!-- After footer scripts -->
<!-- scripts -->
<script src="/js/app.js"></script>
</body>
</html>