Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Python + websocket проблема в написании авто-теста

websocket
python
Теги: #<Tag:0x00007f7b6992abf8> #<Tag:0x00007f7b6992a888>

(Владислав Кузь) #1

Добрый день форумчане, на работе поступило задание отправлять и получать ответы с вебсокет сервера, после получения парсить их и смотреть результат, но проблема в том что
мне приходит строка из 15 рандомных символов типа “ABFDJHRTJSDYJRY” эта строка это барабан игрального автомата, то есть каждые 5 символов это одно поле, нужно протестировать соответствие, того что система правильно распознает выигрышные комбинации, хотелось бы узнать у опытных пользователей какими подходами это реализовать, что использовать, и тд.

Заранее прошу прощение за кривость написания данного поста.


(Urtow) #2

Можно использовать py.test + ws4py(для веб сокета) + что угодно для проверки строки :smile:

В чем конкретно проблема возникла?


(Владислав Кузь) #3

В этой строке заложена выигрышная комбинация по такому принципу( где “-” это один символ, а X- выигрышная комбинация) я как понимаю, мне нужно написать парсер ?
-----XXXXX-----
XXXXX----------
----------XXXXX
X—X-X-X—X–
–X—X-X-X—X
-----X—X-XXX-
-XXX-X—X-----
—XX–X--XX—
XX-----X-----XX


(Mykhailo Poliarush) #4

Да задача немного непонятная, точнее не ясно, в чем Вы не можете разобраться и в чем нужна помощь?

  • Как парсить строку?
  • Как работать с веб-сокетами?
  • Как сделать автоматический тест?
  • Или как распознать правильную сгенерированную комбинацию?

В общем, конкретизируйте проблему.


(Mykhailo Poliarush) #5

Да, наверное нужно парсить и что-то делать с ней.
Ну в общем, это Вы нам скажите, что нужно сделать и что у вас не получается?


(Владислав Кузь) #6

Проблема, в том, что я не знаю как распарсить строку, и распознать комбинацию, остальные шаги получились, сейчас пробую написать парсер для данного теста, завтра отпишу про результаты.


(Mykhailo Poliarush) #7

Для того чтобы распарсить нужно использовать регулярные выражения. А для того чтобы расспознать комбинацию нужно знать алгоритм формирования комбинации, чтобы можно было проверить найденную строку на предмет правильной комбинации.

Парсинг с помощью регулярного выражения очень простой, например как это можно решить

some_coded_string = """
-----ABCDF-----
ADBZE----------
----------SDFXW
S---W-B-D---D--
--X---X-X-X---X
-----X---X-XXX-
-XXX-X---X-----
---XX--X--XX---
XX-----X-----XX
"""

import re
regular_expression = r'\w+'
result = re.findall(regular_expression, some_coded_string)
print result
print "".join(result)

В результате получаем или список для последующей обработки или уже соединенную строку, чтобы в ней выявить (как-то) нужную комбинацию.

['ABCDF', 'ADBZE', 'SDFXW', 'S', 'W', 'B', 'D', 'D', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'XXX', 'XXX', 'X', 'X', 'XX', 'X', 'XX', 'XX', 'X', 'XX']
ABCDFADBZESDFXWSWBDDXXXXXXXXXXXXXXXXXXXXXXXXX

О регулярных выражениях можно почитать тут https://docs.python.org/2/library/re.html или посмотреть онлайн урок c домашними заданиями тут http://lessons2.ru/lesson/preview/operacii-s-fajlami-i-tekstom-v-python/


(Владислав Кузь) #8

Михаил огромное спасибо за ответ, очень заинтересовал ваш курс, планирую на днях приступить, еще раз спасибо!