Commit d11fba05f6d63366135df3ef3fbfb94d002ed762
1 parent
23ec205d
test suite auction without acceleration
Showing
1 changed file
with
424 additions
and
0 deletions
1 | +*** Settings *** | |
2 | +Resource keywords.robot | |
3 | +Resource resource.robot | |
4 | +Suite Setup Test Suite Setup | |
5 | +Suite Teardown Test Suite Teardown | |
6 | +Library Selenium2Library | |
7 | + | |
8 | +*** Variables *** | |
9 | +@{USED_ROLES} viewer provider provider1 | |
10 | + | |
11 | +*** Test Cases *** | |
12 | +Можливість знайти закупівлю по ідентифікатору | |
13 | + [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера | |
14 | + ... ${USERS.users['${viewer}'].broker} | |
15 | + ... find_tender | |
16 | + Завантажити дані про тендер | |
17 | + Run As ${viewer} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} | |
18 | + | |
19 | +############################################################################################## | |
20 | +# AUCTION | |
21 | +############################################################################################## | |
22 | + | |
23 | +Відображення дати початку аукціону | |
24 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних аукціону | |
25 | + ... viewer | |
26 | + ... ${USERS.users['${viewer}'].broker} | |
27 | + ... tender_view | |
28 | + [Setup] Дочекатись дати закінчення прийому пропозицій ${viewer} ${TENDER['TENDER_UAID']} | |
29 | + Дочекатись дати початку періоду аукціону ${viewer} ${TENDER['TENDER_UAID']} | |
30 | + Отримати дані із тендера ${viewer} ${TENDER['TENDER_UAID']} auctionPeriod.startDate ${TENDER['LOT_ID']} | |
31 | + | |
32 | + | |
33 | +Можливість дочекатись початку етапу аукціону | |
34 | + [Tags] ${USERS.users['${viewer}'].broker}: Очікування початку періоду аукціону | |
35 | + ... tender_owner | |
36 | + ... ${USERS.users['${viewer}'].broker} | |
37 | + ... tender_view | |
38 | + Дочекатись дати початку періоду аукціону ${viewer} ${TENDER['TENDER_UAID']} | |
39 | + | |
40 | + | |
41 | +Можливість вичитати посилання на аукціон для першого учасника | |
42 | + [Tags] ${USERS.users['${provider}'].broker}: Процес аукціону | |
43 | + ... provider | |
44 | + ... ${USERS.users['${provider}'].broker} | |
45 | + ... auction | |
46 | + Можливість вичитати посилання на аукціон для ${provider} | |
47 | + | |
48 | + | |
49 | +Можливість вичитати посилання на аукціон для другого учасника | |
50 | + [Tags] ${USERS.users['${provider1}'].broker}: Процес аукціону | |
51 | + ... provider1 | |
52 | + ... ${USERS.users['${provider1}'].broker} | |
53 | + ... auction | |
54 | + Можливість вичитати посилання на аукціон для ${provider1} | |
55 | + | |
56 | + | |
57 | +Можливість вичитати посилання на аукціон для глядача | |
58 | + [Tags] ${USERS.users['${viewer}'].broker}: Процес аукціону | |
59 | + ... viewer | |
60 | + ... ${USERS.users['${viewer}'].broker} | |
61 | + ... auction | |
62 | + Можливість вичитати посилання на аукціон для ${viewer} | |
63 | + | |
64 | + | |
65 | +Можливість дочекатися дати початку аукціону | |
66 | + [Tags] ${USERS.users['${viewer}'].broker}: Процес аукціону | |
67 | + ... viewer | |
68 | + ... ${USERS.users['${viewer}'].broker} | |
69 | + ... auction | |
70 | + Дочекатись дати початку аукціону ${viewer} | |
71 | + | |
72 | + | |
73 | +Можливість дочекатись першого раунду | |
74 | + [Tags] ${USERS.users['${viewer}'].broker}: Процес аукціону | |
75 | + ... viewer provider provider1 | |
76 | + ... ${USERS.users['${viewer}'].broker} | |
77 | + ... ${USERS.users['${provider}'].broker} | |
78 | + ... ${USERS.users['${provider1}'].broker} | |
79 | + ... auction | |
80 | + Дочекатись завершення паузи перед першим раундом | |
81 | + | |
82 | + | |
83 | +Можливість проведення 1 го раунду аукціону для першого учасника | |
84 | + [Tags] ${USERS.users['${provider}'].broker}: Процес аукціону | |
85 | + ... provider | |
86 | + ... ${USERS.users['${provider}'].broker} | |
87 | + ... auction | |
88 | + Вибрати учасника, який може зробити ставку | |
89 | + Поставити ставку в 0.69 відсотків від максимальної | |
90 | + Дочекатись учасником закінчення стадії ставок | |
91 | + Перевірити чи ставка була прийнята | |
92 | + | |
93 | + | |
94 | +Можливість проведення 1 го раунду аукціону для другого учасника | |
95 | + [Tags] ${USERS.users['${provider1}'].broker}: Процес аукціону | |
96 | + ... provider1 | |
97 | + ... ${USERS.users['${provider1}'].broker} | |
98 | + ... auction | |
99 | + Вибрати учасника, який може зробити ставку | |
100 | + Поставити ставку більшу від максимальної на 1 грн | |
101 | + Поставити ставку в 0.69 відсотків від максимальної | |
102 | + Дочекатись учасником закінчення стадії ставок | |
103 | + Перевірити чи ставка була прийнята | |
104 | + | |
105 | + | |
106 | +Можливість дочекатись другого раунду | |
107 | + [Tags] ${USERS.users['${viewer}'].broker}: Процес аукціону | |
108 | + ... viewer provider provider1 | |
109 | + ... ${USERS.users['${viewer}'].broker} | |
110 | + ... ${USERS.users['${provider}'].broker} | |
111 | + ... ${USERS.users['${provider1}'].broker} | |
112 | + ... auction | |
113 | + Дочекатись завершення паузи перед 2 раундом | |
114 | + | |
115 | + | |
116 | +Можливість проведення 2 го раунду аукціону для першого учасника | |
117 | + [Tags] ${USERS.users['${provider}'].broker}: Процес аукціону | |
118 | + ... provider | |
119 | + ... ${USERS.users['${provider}'].broker} | |
120 | + ... auction | |
121 | + Вибрати учасника, який може зробити ставку | |
122 | + Поставити малу ставку в 1 грн | |
123 | + Відмінитити ставку | |
124 | + Поставити максимально можливу ставку | |
125 | + Дочекатись учасником закінчення стадії ставок | |
126 | + Перевірити чи ставка була прийнята | |
127 | + | |
128 | + | |
129 | +Можливість проведення 2 го раунду аукціону для другого учасника | |
130 | + [Tags] ${USERS.users['${provider1}'].broker}: Процес аукціону | |
131 | + ... provider1 | |
132 | + ... ${USERS.users['${provider1}'].broker} | |
133 | + ... auction | |
134 | + Дочекатись учасником закінчення стадії ставок | |
135 | + Вибрати учасника, який може зробити ставку | |
136 | + Поставити максимально можливу ставку | |
137 | + Дочекатись учасником закінчення стадії ставок | |
138 | + Перевірити чи ставка була прийнята | |
139 | + | |
140 | + | |
141 | +Можливість дочекатись третього раунду | |
142 | + [Tags] ${USERS.users['${viewer}'].broker}: Процес аукціону | |
143 | + ... viewer provider provider1 | |
144 | + ... ${USERS.users['${viewer}'].broker} | |
145 | + ... ${USERS.users['${provider}'].broker} | |
146 | + ... ${USERS.users['${provider1}'].broker} | |
147 | + ... auction | |
148 | + Дочекатись завершення паузи перед 3 раундом | |
149 | + | |
150 | + | |
151 | +Можливість проведення 3 го раунду аукціону для першого учасника | |
152 | + [Tags] ${USERS.users['${provider}'].broker}: Процес аукціону | |
153 | + ... provider | |
154 | + ... ${USERS.users['${provider}'].broker} | |
155 | + ... auction | |
156 | + Вибрати учасника, який може зробити ставку | |
157 | + Поставити нульову ставку | |
158 | + Поставити максимально можливу ставку | |
159 | + Дочекатись учасником закінчення стадії ставок | |
160 | + Перевірити чи ставка була прийнята | |
161 | + | |
162 | + | |
163 | +Можливість проведення 3 го раунду аукціону для другого учасника | |
164 | + [Tags] ${USERS.users['${provider1}'].broker}: Процес аукціону | |
165 | + ... provider1 | |
166 | + ... ${USERS.users['${provider1}'].broker} | |
167 | + ... auction | |
168 | + Вибрати учасника, який може зробити ставку | |
169 | + Поставити малу ставку в 1 грн | |
170 | + Змінити ставку на максимальну | |
171 | + Дочекатись учасником закінчення стадії ставок | |
172 | + Перевірити чи ставка була прийнята | |
173 | + | |
174 | + | |
175 | +Можливість дочекатися завершення аукціону | |
176 | + [Tags] ${USERS.users['${viewer}'].broker}: Процес аукціону | |
177 | + ... viewer provider provider1 | |
178 | + ... ${USERS.users['${viewer}'].broker} | |
179 | + ... ${USERS.users['${provider}'].broker} | |
180 | + ... ${USERS.users['${provider1}'].broker} | |
181 | + ... auction | |
182 | + [Teardown] Оновити LAST_MODIFICATION_DATE | |
183 | + Дочекатись дати закінчення аукціону | |
184 | + | |
185 | + | |
186 | +Відображення дати завершення аукціону | |
187 | + [Tags] ${USERS.users['${viewer}'].broker}: Відображення основних даних аукціону | |
188 | + ... viewer | |
189 | + ... ${USERS.users['${viewer}'].broker} | |
190 | + ... tender_view | |
191 | + [Setup] Дочекатись синхронізації з майданчиком ${viewer} | |
192 | + Отримати дані із тендера ${viewer} ${TENDER['TENDER_UAID']} auctionPeriod.endDate ${TENDER['LOT_ID']} | |
193 | + | |
194 | + | |
195 | +*** Keywords *** | |
196 | +Дочекатись дати початку аукціону | |
197 | + [Arguments] ${username} | |
198 | + # Can't use that dirty hack here since we don't know | |
199 | + # the date of auction when creating the procurement :) | |
200 | + ${auctionStart}= Отримати дані із тендера ${username} ${TENDER['TENDER_UAID']} auctionPeriod.startDate ${TENDER['LOT_ID']} | |
201 | + Дочекатись дати ${auctionStart} | |
202 | + Оновити LAST_MODIFICATION_DATE | |
203 | + Дочекатись синхронізації з майданчиком ${username} | |
204 | + | |
205 | + | |
206 | +Дочекатись завершення періоду очікування перед початком аукціону | |
207 | + Відкрити сторінку аукціону для ${viewer} | |
208 | + Wait Until Keyword Succeeds 10 times 60 s Page should not contain до початку аукціону | |
209 | + | |
210 | + | |
211 | +Можливість вичитати посилання на аукціон для ${username} | |
212 | + ${url}= Run Keyword If '${username}' == '${viewer}' Run As ${viewer} Отримати посилання на аукціон для глядача ${TENDER['TENDER_UAID']} ${TENDER['LOT_ID']} | |
213 | + ... ELSE Run As ${username} Отримати посилання на аукціон для учасника ${TENDER['TENDER_UAID']} ${TENDER['LOT_ID']} | |
214 | + Should Be True '${url}' | |
215 | + Should Match Regexp ${url} ${AUCTION_REGEXP} | |
216 | + Log URL: ${url} | |
217 | + [return] ${url} | |
218 | + | |
219 | + | |
220 | +Відкрити сторінку аукціону для ${username} | |
221 | + ${url}= Можливість вичитати посилання на аукціон для ${username} | |
222 | + Open browser ${url} ${USERS.users['${username}'].browser} ${username} | |
223 | + Set Window Position @{USERS['${username}']['position']} | |
224 | + Set Window Size @{USERS['${username}']['size']} | |
225 | + Run Keyword Unless '${username}' == '${viewer}' | |
226 | + ... Click Element xpath=//button[contains(@class, 'btn btn-success')] | |
227 | + | |
228 | + | |
229 | +Дочекатись завершення паузи перед першим раундом | |
230 | + Відкрити сторінку аукціону для ${viewer} | |
231 | + Дочекатись паузи перед першим раундом глядачем | |
232 | + Дочекатись завершення паузи перед першим раундом для користувачів | |
233 | + | |
234 | + | |
235 | +Дочекатись завершення паузи перед першим раундом (скорочене очікування) | |
236 | + Відкрити сторінку аукціону для ${viewer} | |
237 | + Дочекатись завершення паузи перед першим раундом для користувачів | |
238 | + | |
239 | + | |
240 | +Дочекатись дати закінчення аукціону | |
241 | + Переключитись на учасника ${viewer} | |
242 | + ${status} ${_}= Run Keyword And Ignore Error Wait Until Keyword Succeeds 61 times 30 s Page should contain Аукціон завершився | |
243 | + Run Keyword If '${status}' == 'FAIL' | |
244 | + ... Run Keywords | |
245 | + ... Отримати дані із тендера ${username} ${TENDER['TENDER_UAID']} auctionPeriod.startDate ${TENDER['LOT_ID']} | |
246 | + ... AND | |
247 | + ... Дочекатись дати початку аукціону ${username} | |
248 | + ... AND | |
249 | + ... Дочекатись дати закінчення аукціону для ${username} | |
250 | + ... ELSE | |
251 | + ... Run Keywords | |
252 | + ... Wait Until Keyword Succeeds 15 times 30 s Page should not contain Очікуємо на розкриття імен учасників | |
253 | + ... AND | |
254 | + ... Переключитись на учасника ${provider} | |
255 | + ... AND | |
256 | + ... Page should contain Аукціон завершився | |
257 | + ... AND | |
258 | + ... Переключитись на учасника ${provider1} | |
259 | + ... AND | |
260 | + ... Page should contain Аукціон завершився | |
261 | + ... AND | |
262 | + ... Close browser | |
263 | + | |
264 | + | |
265 | +Дочекатись закінчення аукціону (скорочене очікування) | |
266 | + Переключитись на учасника ${viewer} | |
267 | + Wait Until Keyword Succeeds 61 times 30 s Page should contain Аукціон завершився | |
268 | + Close browser | |
269 | + | |
270 | + | |
271 | +Дочекатись паузи перед першим раундом глядачем | |
272 | + ${status} ${_}= Run Keyword And Ignore Error Page should contain Очікування | |
273 | + Run Keyword If '${status}' == 'PASS' | |
274 | + ... Run Keywords | |
275 | + ... Дочекатись дати початку аукціону ${viewer} | |
276 | + ... AND | |
277 | + ... Wait Until Keyword Succeeds 15 times 10 s Page should contain до початку раунду | |
278 | + | |
279 | + | |
280 | +Дочекатись завершення паузи перед ${round_number} раундом | |
281 | + Переключитись на учасника ${viewer} | |
282 | + Wait Until Keyword Succeeds 30 times 5s Page should contain → ${round_number} | |
283 | + ${date}= Get Current Date | |
284 | + Переключитись на учасника ${provider} | |
285 | + Page should contain → ${round_number} | |
286 | + Переключитись на учасника ${provider1} | |
287 | + Page should contain → ${round_number} | |
288 | + Переключитись на учасника ${viewer} | |
289 | + Wait Until Keyword Succeeds 30 times 5 s Page should not contain → ${round_number} | |
290 | + ${new_date}= Get Current Date | |
291 | + Переключитись на учасника ${provider} | |
292 | + Page should not contain → ${round_number} | |
293 | + Переключитись на учасника ${provider1} | |
294 | + Page should not contain → ${round_number} | |
295 | + ${time}= Subtract Date From Date ${new_date} ${date} | |
296 | + Should Be True ${time} < 140 and ${time} > 100 | |
297 | + | |
298 | + | |
299 | +Дочекатись завершення паузи перед першим раундом для користувачів | |
300 | + Wait Until Keyword Succeeds 30 times 5s Page should contain → 1 | |
301 | + ${date}= Get Current Date | |
302 | + Відкрити сторінку аукціону для ${provider} | |
303 | + Відкрити сторінку аукціону для ${provider1} | |
304 | + Переключитись на учасника ${viewer} | |
305 | + Wait Until Keyword Succeeds 62 times 5 s Page should not contain → 1 | |
306 | + ${new_date}= Get Current Date | |
307 | + ${time}= Subtract Date From Date ${new_date} ${date} | |
308 | + Should Be True ${time} < 310 and ${time} > 250 | |
309 | + Переключитись на учасника ${provider} | |
310 | + Page should not contain → 1 | |
311 | + Переключитись на учасника ${provider1} | |
312 | + Page should not contain → 1 | |
313 | + | |
314 | + | |
315 | +Дочекатись закінчення стадії ставок глядачем | |
316 | + Wait Until Keyword Succeeds 30 times 5s Page should contain до закінчення раунду | |
317 | + ${date}= Get Current Date | |
318 | + Wait Until Keyword Succeeds 50 times 5 s Page should not contain до закінчення раунду | |
319 | + ${new_date}= Get Current Date | |
320 | + ${time}= Subtract Date From Date ${new_date} ${date} | |
321 | + Should Be True ${time} < 250 and ${time} > 210 | |
322 | + | |
323 | + | |
324 | +Дочекатись учасником закінчення стадії ставок | |
325 | + Wait Until Keyword Succeeds 12 times 10 s Page should not contain до закінчення вашої черги | |
326 | + | |
327 | + | |
328 | +Дочекатись оголошення результатів глядачем | |
329 | + Wait Until Keyword Succeeds 30 times 5s Page should contain до оголошення результатів | |
330 | + ${date}= Get Current Date | |
331 | + Wait Until Keyword Succeeds 50 times 5 s Page should not contain до оголошення результатів | |
332 | + ${new_date}= Get Current Date | |
333 | + ${time}= Subtract Date From Date ${new_date} ${date} | |
334 | + Should Be True ${time} < 250 and ${time} > 210 | |
335 | + | |
336 | + | |
337 | +Переключитись на учасника | |
338 | + [Arguments] ${username} | |
339 | + Switch Browser ${username} | |
340 | + ${CURRENT_USER}= Set Variable ${username} | |
341 | + Set Global Variable ${CURRENT_USER} | |
342 | + | |
343 | + | |
344 | +Поставити максимально можливу ставку | |
345 | + Run Keyword If ${TENDER_MEAT} == ${True} Wait Until Page Contains Element xpath=//div[@class='col-md-5 col-sm-5 full-price-group']//span[@class='ng-binding'] | |
346 | + ... ELSE Wait Until Page Contains Element id=max_bid_amount_price | |
347 | + ${last_amount}= Run Keyword If ${TENDER_MEAT} == ${True} Get Text xpath=//div[@class='col-md-5 col-sm-5 full-price-group']//span[@class='ng-binding'] | |
348 | + ... ELSE Get Text id=max_bid_amount_price | |
349 | + ${last_amount}= convert_amount_string_to_float ${last_amount} | |
350 | + ${value}= Convert To Number 0.01 | |
351 | + ${last_amount}= subtraction ${last_amount} ${value} | |
352 | + Поставити ставку ${last_amount} Заявку прийнято | |
353 | + | |
354 | + | |
355 | +Поставити ставку в ${percent} відсотків від максимальної | |
356 | + Run Keyword If ${TENDER_MEAT} == ${True} Wait Until Page Contains Element xpath=//div[@class='col-md-5 col-sm-5 full-price-group']//span[@class='ng-binding'] | |
357 | + ... ELSE Wait Until Page Contains Element id=max_bid_amount_price | |
358 | + ${max_amount}= Run Keyword If ${TENDER_MEAT} == ${True} Get Text xpath=//div[@class='col-md-5 col-sm-5 full-price-group']//span[@class='ng-binding'] | |
359 | + ... ELSE Get Text id=max_bid_amount_price | |
360 | + ${max_amount}= convert_amount_string_to_float ${max_amount} | |
361 | + ${max_amount}= Convert To Number ${max_amount} 2 | |
362 | + ${percent}= convert_amount_string_to_float ${percent} | |
363 | + ${last_amount}= Evaluate ${max_amount}*${percent} | |
364 | + ${last_amount}= Convert To Number ${last_amount} 2 | |
365 | + Поставити ставку ${last_amount} Ви збираєтеся значно понизити свою ставку на | |
366 | + Поставити ставку ${last_amount} Заявку прийнято | |
367 | + | |
368 | + | |
369 | +Поставити ставку більшу від максимальної на ${extra_amount} грн | |
370 | + Run Keyword If ${TENDER_MEAT} == ${True} Wait Until Page Contains Element xpath=//div[@class='col-md-5 col-sm-5 full-price-group']//span[@class='ng-binding'] | |
371 | + ... ELSE Wait Until Page Contains Element id=max_bid_amount_price | |
372 | + ${last_amount}= Run Keyword If ${TENDER_MEAT} == ${True} Get Text xpath=//div[@class='col-md-5 col-sm-5 full-price-group']//span[@class='ng-binding'] | |
373 | + ... ELSE Get Text id=max_bid_amount_price | |
374 | + ${last_amount}= convert_amount_string_to_float ${last_amount} | |
375 | + ${extra_amount}= convert_amount_string_to_float ${extra_amount} | |
376 | + ${last_amount}= Evaluate ${last_amount}+${extra_amount} | |
377 | + Поставити ставку ${last_amount} Надто висока заявка | |
378 | + | |
379 | + | |
380 | +Поставити ставку | |
381 | + [Arguments] ${amount} ${msg} | |
382 | + ${amount}= Convert To String ${amount} | |
383 | + Set To Dictionary ${USERS['${CURRENT_USER}']} last_amount=${amount} | |
384 | + Click Element id=clear-bid-button | |
385 | + Wait Until Page Does Not Contain Element xpath=//alert[contains(@class, 'bids-form')] 7s | |
386 | + Input Text id=bid-amount-input ${amount} | |
387 | + Click Element id=place-bid-button | |
388 | + Wait Until Page Contains ${msg} 30s | |
389 | + | |
390 | + | |
391 | +Відмінитити ставку | |
392 | + Click Element id=cancel-bid-button | |
393 | + Wait Until Page Contains Заявку відмінено 10s | |
394 | + | |
395 | + | |
396 | +Змінити ставку на максимальну | |
397 | + Click Element id=edit-bid-button | |
398 | + Click Element id=clear-bid-button | |
399 | + Поставити максимально можливу ставку | |
400 | + | |
401 | + | |
402 | +Вибрати учасника, який може зробити ставку | |
403 | + :FOR ${username} IN ${provider} ${provider1} | |
404 | + \ Переключитись на учасника ${username} | |
405 | + \ ${status} ${_}= Run Keyword And Ignore Error Page Should Contain до закінчення вашої черги | |
406 | + \ Run Keyword If '${status}' == 'PASS' Exit For Loop | |
407 | + | |
408 | + | |
409 | +Поставити малу ставку в ${last_amount} грн | |
410 | + Run Keyword If ${TENDER_MEAT} == ${True} Wait Until Page Contains Element xpath=//div[@class='col-md-5 col-sm-5 full-price-group']//span[@class='ng-binding'] | |
411 | + ... ELSE Wait Until Page Contains Element id=max_bid_amount_price | |
412 | + Поставити ставку ${last_amount} Ви збираєтеся значно понизити свою ставку на | |
413 | + Поставити ставку ${last_amount} Заявку прийнято | |
414 | + | |
415 | + | |
416 | +Поставити нульову ставку | |
417 | + Run Keyword If ${TENDER_MEAT} == ${True} Wait Until Page Contains Element xpath=//div[@class='col-md-5 col-sm-5 full-price-group']//span[@class='ng-binding'] | |
418 | + ... ELSE Wait Until Page Contains Element id=max_bid_amount_price | |
419 | + Поставити ставку 0 Ви збираєтеся значно понизити свою ставку на | |
420 | + | |
421 | + | |
422 | +Перевірити чи ставка була прийнята | |
423 | + ${last_amount}= convert_amount ${USERS['${CURRENT_USER}']['last_amount']} | |
424 | + Page Should Contain ${last_amount} | ... | ... |
Please
register
or
login
to post a comment