Веб-қызметтерді сынау. Сыртқы SOAP қызметтерін пайдалану

SOAP (Нысанға қарапайым қатынас протоколы)клиент пен сервер арасында хабарламаларды жіберуге арналған стандартталған протокол. Ол әдетте HTTP(S)-мен бірге пайдаланылады, бірақ сонымен қатар қолданбалы деңгейдің басқа протоколдарымен (SMTP және FTP сияқты) жұмыс істей алады.
Тестілеу әдістері тұрғысынан SOAP тестілеу басқа API интерфейстерімен жұмыс істеуден түбегейлі айырмашылығы жоқ, бірақ ол алдын ала дайындық(хаттама теориясы тұрғысынан) және арнайы тестілеу құралдары. Бұл мақалада мен SOAP тестері үшін де (тапсырманы қойғаннан кейін нені ұстау керектігін білмейтін) бірдей пайдалы болатын қажетті білім мен дағдылардың шағын тексеру тізімін құрастырғым келеді. тестілеушілердің білімін бағалауға және оқыту жоспарын жасауға мәжбүр.

Теориялық негізі

SOAP протоколы болып табылатындығы тестілеуге көп әсер етеді: сіз хаттаманың өзін, ол негізделген «бастапқы» стандарттар мен хаттамаларды және (қажет болған жағдайда) бар кеңейтімдерді зерттеуіңіз керек.

XML
XML - HTML-ге ұқсас белгілеу тілі. SOAP арқылы жіберілген/алынған кез келген хабарлама деректер ыңғайлы құрылымдалған және оқуға оңай болатын XML құжаты болып табылады, мысалы:



Юлия
Наташа
Еске салғыш
Мақала жазуды ұмытпаңыз!

XML туралы көбірек біле аласыз w3schools немесе codenet (орыс тілінде). Есім кеңістігінің сипаттамасына назар аударыңыз (XML-де элементтерді сипаттау кезінде қайшылықтарды шешу әдісі) - оларды пайдалану SOAP бағдарламасында қажет.

XSD
Жұмыс кезінде ықтимал XML құжаттарының стандартталған сипаттамасы болуы және олардың дұрыс толтырылуын тексеру әрқашан ыңғайлы. Бұл мақсат үшін XML схемасының анықтамасы (немесе қысқаша XSD) бар. Тестілеушіге арналған XSD екі негізгі ерекшелігі деректер түрлерінің сипаттамасы және мүмкін мәндерге шектеулер қою болып табылады. Мысалы, алдыңғы мысалдағы элемент XSD көмегімен міндетті емес және 255 таңбамен шектелуі мүмкін:

...







...

SOAP кеңейтімдері
Жұмысыңызда сіз SOAP-тың әртүрлі «кеңейтімдерін» кездестіруіңіз мүмкін - WS-* сияқты стандарттар. Ең кең таралғандардың бірі шифрлаумен және электрондық қолтаңбалармен жұмыс істеуге мүмкіндік беретін WS-Security. Көбінесе онымен бірге WS-Policy пайдаланылады, оның көмегімен қызметті пайдалану құқықтарын басқаруға болады.

WS-Security пайдалану мысалы:


Алиса
6S3P2EWNP3lQf+9VC3emNoT57oQ=
YF6j8V/CAqi+1nRsGLRbuZhi
2008-04-28T10:02:11Z

Барлық осы кеңейтімдер әр SOAP қызметінде қолданылмайтын өте күрделі құрылымдар; SOAP тестілеуін меңгерудің бастапқы кезеңінде оларды егжей-тегжейлі зерттеу өзекті болуы екіталай.

Құралдар

Сіз түсінгеніңіздей, SOAP - бұл маңызды мәселе, онымен жұмыс істеу үшін сіз теорияны және көптеген стандарттарды білуіңіз керек. Іс жүзінде мұндай күрделілік өте маңызды еңбек шығындарына әкеледі (мысалы, сіз әр уақытта блокноттағы диаграмманы қарап, сұрауларды бұрмалау арқылы жіберуге тура келеді). Сондықтан SOAP-пен жұмыс істеуді жеңілдету үшін құралдар жасалды.

XML/XSD редакторлары
Жақсы тестілеуші ​​тестілеуді құжаттаманы жазу сатысында бастайды, сондықтан схемаларды сынау үшін арнайы редакторларды пайдалану ыңғайлы. Ең танымал екеуі - Oxygen (кросс-платформа) және Altova (тек Windows); екеуі де ақылы. Бұл аналитиктер қызметтерді сипаттау кезінде белсенді түрде қолданатын өте қуатты бағдарламалар.

Менің тәжірибемде редакторлардың үш мүмкіндігі пайдалы болды: XSD визуализациясы, XSD негізіндегі XML генерациясы және XSD негізіндегі XML валидациясы.

1. XSD визуализациясықажетті элементтер мен атрибуттарды, сондай-ақ бар шектеулерді жылдам анықтауға мүмкіндік беретін диаграмманың көрнекі көрінісі үшін қажет. Мысалы, CheckTextRequest үшін мәтін элементі қажет және барлық үш төлсипат міндетті емес (опциялар төлсипатының әдепкі мәні нөлге тең).

Диаграммада көптеген түрлер мен шектеулер болған кезде визуализация қажет. Егер сізге бұл қажет болса және арнайы редакторларға ақы төлегіңіз келмесе, тегін баламаларды қарастыруға болады (мысалы, JDeveloper).

2. XSD негізіндегі XML генерациясыхабардың жарамды мысалын көргіңіз келгенде пайдалы. Мен оны ықтимал хабарды аяқтаумен жылдам тәжірибе жасау және шектеулердің қалай жұмыс істейтінін тексеру үшін қолданамын.

3. 2-тармақтағы мүмкіндікті пайдаланғаннан кейін оны орындау пайдалы XSD қарсы XML валидациясы– яғни хабардың дұрыстығын тексеріңіз. 2 және 3 мүмкіндіктері бірге қызметтің өзі әзірлену үстінде болса да, XSD жүйесіндегі күрделі ақауларды анықтауға мүмкіндік береді.

Тестілеу құралы – SoapUI

SOAP тестілеу әрқашан дерлік SoapUI пайдалануды қамтиды. Сіз бұл құралды әртүрлі көздерден (,) пайдалану туралы оқи аласыз, бірақ ресми құжаттаманы оқу тиімді болады. Мен SoapUI біліктілігінің 8 шартты деңгейін анықтаймын:

1-деңгей – сұрауларды жібере аламын
WSDL негізінде жоба жасауды үйреніңіз. SoapUI сіз үшін барлық қажетті сұрауларды жасай алады; Тек олардың дұрыс толтырылғанын тексеріп, «Жіберу» түймесін басу жеткілікті. Жарамды сұрауларды жасау дағдыларын дамытқаннан кейін қателерді тудыратын қате сұрауларды жасау өнерін меңгеру керек.

2-деңгей – Сынақ жинағы мен сынақ жағдайларын жасай аламын
Шағын автотесттер жасауды бастаңыз. Сынақ жинақтары мен сынақ жағдайлары API сынақ сценарийлерін жасауға, сұраулар үшін деректерді дайындауға және күтілетінге сәйкес келетініне көз жеткізу үшін алынған жауапты автоматты түрде тексеруге мүмкіндік береді. Бастапқыда оларды жай ғана сұраулар жинағы ретінде пайдалануға болады. Мысалы, егер сіз ақау жасасаңыз және оны жөндегеннен кейін оны жылдам тексергіңіз келсе, ақау сұраулары үшін арнайы жеке сынақ жинағын бөлуге болады.

3-деңгей – Бекітулерді жаза аламын
Сынақ жағдайларын меңгергеннен кейін оларды автоматты түрде тексеруге болатынын білу сізге пайдалы болады. Осыдан кейін жауап туралы ақпаратты өз көзіңізбен іздеудің қажеті болмайды: егер автоматты тексеру болса, істер жасыл (тексеруден өткен болса) немесе қызыл (егер ол өтпесе) болып белгіленеді. SoapUI ықтимал бекітулердің үлкен жинағын қамтамасыз етеді, бірақ ең ыңғайлы және қарапайымдары - Құрамында және Құрамында емес. Олардың көмегімен қол жетімділікті тексеруге болады нақты мәтіналынған жауапта. Бұл тексерулер тұрақты өрнек іздеулерін де қолдайды.

4-деңгей – бекітулерде XPath және/немесе XQuery пайдаланыңыз
Selenium көмегімен UI-мен аздап таныс адамдар үшін XPath тілі таныс нәрсе. Жалпы айтқанда, XPath XML құжатындағы элементтерді іздеуге мүмкіндік береді. XQuery - XPath-ті іштей пайдалана алатын ұқсас технология; бұл тіл әлдеқайда күшті, ол SQL-ге ұқсайды. Бұл екі тіл де Бекітулерде қолданылуы мүмкін. Олардың көмегімен тексерулер мақсатты және тұрақты, сондықтан сіздің істеріңізге сенімділік артады.

5-деңгей – арнайы қадамдар арқылы күрделі тесттер жаза аламын

Сынақ жағдайларында бір сұрау ғана емес, сонымен қатар бірнеше болуы мүмкін (мысалы, стандартты пайдаланушы сценарийін «нысан жасау» → «экспорттық нысан» эмуляциясы қажет болғанда). Сұраулар арасында басқа арнайы қадамдар болуы мүмкін, мысалы:

  • Properties және Property Transfer (деректерді қайта пайдалануға және сұраулар арасында тасымалдауға көмектесу);
  • JDBC сұрауы (деректер базасынан деректерді алу үшін пайдаланылады);
  • Шартты Goto (сынақ жағдайда тармақтар немесе ілмектер жасауға мүмкіндік береді);
  • TestCase іске қосыңыз (кейбір типтік сұрауларды бөлек сынақ жағдайларына қоюға және қажет болған жағдайда оларды шақыруға көмектеседі).

6-деңгей – Groovy сценарийлерін пайдалану

SoapUI әртүрлі жерлерде Groovy сценарийлерін жазуға мүмкіндік береді. Ең қарапайым жағдай - $(=) кірістіру арқылы сұраудың өзінде деректерді жасау. Мен бұл кірістірулерді үнемі қолданамын:

  • $(=жаңа Күн().формат(“жжжж-АА-кг’Т’СС:мм:сс”))– қажетті форматта ағымдағы күн мен уақытты енгізу;
  • $(=java.util.UUID.randomUUID())– дұрыс құрылған кездейсоқ GUID енгізу үшін.

Толық сценарийлерді істер мен тексерулердегі қадамдар ретінде пайдалануға болады. Бір сәтте сіз бесінші деңгейден бірнеше арнайы қадамдарды бір сценариймен ауыстыруға болатынын білесіз.

7-деңгей – MockServices көмегімен
WSDL негізіндегі SoapUI жалған нысандарды жасай алады. Жалған нысан - бұл қызметтің ең қарапайым имитациясы. «Мысықтар» көмегімен тестілеу жағдайларын жазуды және жөндеуді қызмет тестілеуге қол жетімді болғанға дейін бастауға болады. Сондай-ақ оларды уақытша қолжетімсіз қызметтер үшін «түтіктер» ретінде пайдалануға болады.

8-деңгей – SoapUI Құдайы
Сіз ақылы және ақылы арасындағы айырмашылықты білесіз бе тегін нұсқалары SoapUI және кодта SoapUI API пайдаланыңыз. Сіз плагиндерді пайдаланасыз және істерді пәрмен жолы және/немесе CI арқылы іске қосасыз. Сіздің сынақ жағдайларыңыз қарапайым және күтімге оңай. Жалпы, сіз бұл аспапта «ит жегенсіз». Мен SoapUI-ді осы деңгейде меңгерген адаммен сөйлескім келеді. Егер сіз біреу болсаңыз, түсініктемелерде тіркеліңіз!

Бағдарламалау тілдерімен тестілеу

groovy-wslite көмегімен жасалған YandexSpeller API сұрауының мысалы:

wslite.soap импорттау.*
def клиент = жаңа SOAPClient("http://speller.yandex.net/services/spellservice?WSDL")
def жауап = client.send(SOAPAction: "http://speller.yandex.net/services/spellservice/checkText") (
дене(
CheckTextRequest("lang": "ru", "xmlns":"http://speller.yandex.net/services/spellservice") (
мәтін («қате»)
}
}
}
assert "қате" == respond.CheckTextResponse.SpellResult.error.s.text()
«1» == бекітіңіз [электрондық пошта қорғалған]()

Менің білуімше, SOAP тестілеуге арналған жоғары деңгейлі фреймворктар (Rest-assured сияқты) әлі жоқ, бірақ жақында қызықты құрал пайда болды - каратэ. Оның көмегімен сіз Қияр/Геркин сияқты сценарийлер түрінде SOAP және REST тестілеу жағдайларын сипаттай аласыз. Көптеген тестерлер үшін каратэге бет бұру тамаша шешім болады, өйткені мұндай сценарийлер, жазу және қолдау жағдайларының күрделілігі тұрғысынан, SoapUI пайдалану мен SOAP тестілеуге арналған жеке негізді жазу арасында ортасында болады.

Қорытынды

САБЫН-ды тек өзіңіз үшін сынағыңыз келуі екіталай (REST сияқты). Бұл маңызды кәсіпорын шешімдерінде қолданылатын ауыр салмақты протокол. Бірақ оның ауырлығы бір мезгілде сынаушыға сыйлық болып табылады: қолданылатын барлық технологиялар стандартталған, жұмыс үшін жоғары сапалы құралдар бар. Тестілеушіден талап етілетін нәрсе - оларды үйренуге және пайдалануға деген ұмтылыс.

Тестілеушіге қажетті дағдылардың бірдей бақылау тізімін жинайық. Сонымен, егер сіз SOAP қызметтерін сынауды енді бастасаңыз, мыналарды білуіңіз және пайдалана білуіңіз керек:

  • WSDL.
  • САБЫН.
  • XML/XSD редакторлары (XSD визуализация деңгейінде).
  • SoapUI 1-деңгейде.

Көріп отырғаныңыздай, SoapUI-де стандарттарды үйренуге басты назар аударылады; SOAP тестілеуіне кіріскен кезде сіз күрделі дағдылар мен білімді қажет ететін тапсырмаларға тап боласыз, бірақ бәрін бірден үйренуге тырыспауыңыз керек. Орындалатын тапсырмалардың күрделілік деңгейін арттырудағы жүйелілік әлдеқайда маңызды. Осы ұсынысты орындау арқылы сіз бір күні осы саланың жақсы маманы болғаныңызды түсінесіз!

1С жүйесіндегі веб-қызмет

Бұл мақалада 1С-ті қолданыстағы веб-қызметтермен біріктіру және 1С-тің өзін веб-қызмет ретінде пайдалану талқыланады.

Бұл жағдайда веб-қызметтер Интернетте жұмыс істейтін және олармен SOAP (дәл веб-қызмет) арқылы ғана емес, сонымен қатар басқа тәсілдермен, соның ішінде тұрақты HTTP(S) сұрауларын қамтамасыз ететін жүйелер ретінде түсінілетін болады.


1С веб-қызметтерін пайдалану тәуекелдері

1C81 платформасы веб-қызметтерді енгізуді енгізді.

Бірақ оларды пайдалану қауіптерге толы:

  1. 1C8 HTTPS арқылы жақсы жұмыс істемейді, диагностикалық құралдар жоқ, сондықтан кейде сертификат бар болса да, қызмет HTTPS арқылы жұмыс істегісі келмейтінін түсіну мүмкін емес. Шешім - CURL арқылы веб-қызметтерді енгізу немесе HTTPS туннелін көтеру.
  2. 1C8 WSDL схемаларын тексеру ережелерін сақтайды. Кейде түсініксіз себептермен WSDL схемасы WS сілтемесіне жүктелгісі келмейді. Себебін серіктес форумда бір маманнан ғана біле аласыз. WSDL схемасын диагностикалау құралдары жоқ, тіпті схеманы жүктеудің үзілген себебі немесе жолы көрсетілмеген.

Сату қызметтерін құру ережелері

Клиентке қызмет көрсету операциясы сәтті болған жағдайда ғана сату құжаты (түбіртек) беріледі. Әйтпесе, клиент чек алған кезде және қызмет алғанына сенімді болған жағдай болуы мүмкін, бірақ іс жүзінде ол алмаған.

Сыртқы SOAP қызметтерін пайдалану

SOAP веб-қызметтері деректерді көрсету үшін WSDL схемаларын және XDTO нысандарын пайдаланады.

WSDL жүктелуде

Сыртқы қызметті пайдалану үшін оның WSDL схемасын жүктеп алу қажет.

WSDL схемасының жарамдылығын тексеру

Кейде WSDL схемасы 1С-ге жүктелмейді. Кез келген WSDL схемасын тексеру құралы арқылы схеманың жарамдылығын (дұрыстығын) тексеруге болады, мысалы http://www.validwsdl.com/.

Сізге схеманы кейбір http сайтына жүктеп салу керек (сіз ftp пайдалана аласыз) және схема жүктелген файлдың мекенжайын көрсетіңіз:

1С жүйесінде WSDL жүктеудің ерекшеліктері

1С жүйесінде WSDL жүктеудің ерекшелігі жарамды схемалар жүктелмеуі мүмкін. Кірістірілген валидатор жоқ, сондықтан тізбектегі элементтердің санын дәйекті түрде азайта отырып, деструктивті талдауды пайдаланып қатені іздеу керек. Мысалы, веб-қызмет сипаттамасын жоюға болады.

Іске қосылған сыртқы веб-қызметті тексеру үшін өңдеу

Жұмыс істейтін сыртқы веб-қызметті тексеру үшін осы мақалаға арналған бумадағы “Test ArbitraryWebService.epf” өңдеуін пайдаланыңыз.

Тестілеуді атауларды қабылдамайтын Morpher қызметінің мысалын пайдаланып қолдануға болады (қызмет мекенжайы http://www.morpher.ru/WebServices/Morpher.asmx?WSDL):

Осылайша, қарапайым түрлердің параметрлерін қамтитын қарапайым кіру нүктелері бар кез келген қызметті тексеруге болады: нөмір, күн, жол.

Өңдеу кезінде веб-қызметке кіруге рұқсат беру үшін қажет логин мен құпия сөзді де көрсетуге болады.

Отладка қызметтерінің стандартты құралдары

Түзету үшін сіз веб-қызметке ерікті сұрау жіберіп, одан жауап ала алатын SoapUI бағдарламасын пайдалана аласыз.

SOAP және HTTPS

Өкінішке орай, SOAP 1C HTTPS протоколы арқылы жұмыс істегенде өзін өте құмар ұстайды, бұл мүмкіндік платформада жарияланғанымен, HTTPS қосылымына қол жеткізу мүмкін емес; Байланыстың орнатылмау себептерін анықтау үшін диагностикалық және жөндеу құралдарының жоқтығы зардап шегуде. Сондықтан CURL арқылы SOAP қолдану ыңғайлы.

HTTPS пайдаланудың кірістірілген механизмі барлық сертификаттарды 1С бағдарламасы каталогындағы жалпы pem файлында жариялау керек екенін білдіреді.

1С қызметін қызмет ретінде пайдалану

1С негізіндегі қызметті әзірлеу ережелері

Операция Сәлем

Жақсы пішін ережесі қызметтің қолжетімді екендігі туралы хабарлайтын қызметте операция жасау болып табылады. Бұл интеграторлардың өмірін жеңілдетеді, олар үшін қызметпен байланыс орнатылғанын тексеру оңайырақ болады.

Мысалы, Hello операциясын параметрлерсіз пайдалануға болады, ол жай ғана логикалық мәнін True қайтарады.

Веб-қызметті жариялау

Процедура құжаттамада жақсы сипатталған: file:///C:/Program%20Files/1cv81/AddDoc/RU/V8AddDoc81.htm#_Toc176167634:

Веб-қызметтерді жариялау міндеті веб-сервердің сәйкес параметрлері бар веб-сервердің сәйкес каталогында веб-қызметтердің *.1cws конфигурация файлдарын орналастыруға байланысты. Веб-қызметтерді жариялау үшін мәзір командасын орындау керек «Әкімшілік | Веб-қызметтерді жариялау».

Осы пәрменді орындау нәтижесінде веб-қызметтерді жариялау терезесі ашылады.

Веб-қызметтерді жариялау терезесі веб-серверге жолды және екі тізімді қамтиды:

  • «Веб-қызметтері» - конфигурация веб-қызметтерінің тізімі;
  • «Жариялау» - көрсетілген веб-серверде жарияланған веб-қызметтердің тізімі.

«Қосылу...» түймесін пайдаланып, веб-қызметтерді жариялағыңыз келетін веб-серверді көрсетуіңіз керек.

Веб-сервер жолын таңдау терезесі жолды екі жолмен көрсетуге мүмкіндік береді:

  • «Файлдар» қойындысында - бұл әдіс веб-сервер орнатылған компьютерде жариялау орындалғанда қолданылады. Жол – жарияланған веб-сервер шақырылатын Интернет бетіне сәйкес жергілікті каталог;
  • «FTP сайты» қойындысында - бұл әдіс қашықтағы компьютерде веб-қызметті жариялау қажет болғанда қолданылады. Жариялау үшін қашықтағы компьютерге FTP қосылымының параметрлерін және веб-қызмет жарияланатын каталогты көрсету керек.

Таңдалған веб-қызмет «Жариялау» түймешігі арқылы жарияланады

Веб-қызметті жариялаудан бас тарту үшін «Жою» түймесін пайдаланыңыз.

Жергілікті каталогқа немесе FTP арқылы жариялауға болады. Қашықтағы сервер жергілікті желінің бөлігі болса, UNC жолы арқылы қашықтағы серверге де жариялауға болады.

Жарияланғаннан кейін веб-қызмет «http://localhost/test.1cws» немесе «http://xxx.ru/test.1cws» мекенжайында қолжетімді, мұнда xxx.ru қашықтағы сервер мен localhost мекенжайы болып табылады. жергілікті сервердің әдеттегі мекенжайы болып табылады.

1С веб-қызметіне авторизация

Қызметке қол жеткізу үшін аутентификациядан өту керек.

Авторизация мәселелері мына жерде жақсы қарастырылған: http://www.forum.mista.ru/topic.php?id=341168 және құжаттама файлында:///c:/Program%20Files/1cv81/AddDoc/RU/V8AddDoc81. htm

Әдетте, веб-қызмет белгілі бір пайдаланушының (әдетте арнайы жасалған) астында жұмыс істейді. Windows аутентификациясы арқылы 1C пайдаланушысын Windows пайдаланушысына IUSR_ «тіркеуге» болады (пайдаланушы үшін 1C авторизациясын өшіру). Сонымен қатар, сіз 1С пайдаланушыларының тізімін өшіре аласыз, содан кейін авторизация қажет емес.

Егер бірнеше пайдаланушы қажет болса, онда сіз веб-серверге бірнеше логин жасай аласыз, олардың әрқайсысына Windows пайдаланушысын тағайындай аласыз және сәйкесінше 1С жүйесінде Windows пайдаланушыларына кіруді тіркей аласыз.

WSProxy нысанының Пайдаланушы және Құпия сөз сипаттарында 1С логин емес, веб-сервер пайдаланушысының логин пайдаланылады.

1С веб-қызметін тестілеу

1C веб-қызметі ретінде сынау үшін «Істеп жатқан сыртқы веб-қызметті сынау» бөлімінде сипатталғандай «ArbitraryWebService.epf сынау» өңдеуін пайдаланыңыз.

1cws файлы 1C веб-қызметінің WSDL сипаттамасы болып табылады.

Бөлшек саудада қызметтерді пайдалану

Әдетте, бөлшек қызметтер халыққа әртүрлі қызметтерді көрсету үшін қолданылады - төлемдерді қабылдау, несиелерді өтеу, Ақша аударымдары, сатып алу бағдарламалық қамтамасыз етужәне т.б.

Бұл жағдайда транзакция параметрлері сақталатын көрсетілген қызмет үшін 1С-те түбіртек жасалады. Осыдан кейін бұл чек клиентке басып шығарылады егжей-тегжейлі ақпараткөрсетілетін қызмет туралы. Клиент өз сөзінен енгізілген деректерді өз қолымен растауы үшін алдын ала чекті басып шығаруға болады.

Қызмет 1С тілінде жазылған бөлшек сауда бағдарламасына әртүрлі тәсілдермен біріктірілуі мүмкін (UT, Retail және т.б.):

  1. Өңдеу немесе кодты қызметпен барлық жұмысты орындайтын 1С тілінде жазуға болады.
  2. Қызметпен жұмыс істейтін бағдарламаны пайдалануға болады, ал 1С-те тек тексеру үшін ақпаратты жібереді.

1С жүйесінде сервистік мәліметтерді ұйымдастыру

Түбіртекте транзакция туралы ақпаратты сақтау үшін сізге мәліметтері бар «Кешенді сату» қосымша кестелік бөлігін жасау керек:

  • Номенклатура – ​​чек номенклатурасына сілтеме.
  • Параметр - «Күрделі сатылымдар: Параметрлер» анықтамалығына сілтеме.
  • Мән – параметрдің мәні, күрделі түрі. Тексеру мәтінін орналастыру үшін жол көрінісі өте ұзын болуы керек (1024 таңба).

«Күрделі сатылымдар: Параметрлер» каталогында транзакция параметрлерінің тізімі бар.

Детальдар жиынтығынан гөрі кестелік бөлікті пайдалану тиімдірек, өйткені транзакцияда олардың көп болуы мүмкін және қызметке қатысы жоқ басқа тексерулерде бұл мәліметтер пайдаланылмайды және қосымша орын алады. Сонымен қатар, мұндай шешім кез келген қызмет үшін әмбебап болып табылады және жаңа қызметті жүзеге асырғаннан кейін деректерді қайта құрылымдауды қажет етпейді.

Сатушыға жеке бетбелгі (немесе конфигурацияны өзгертпеу үшін басып шығарылған пішін) беріледі, онда ол чек үшін транзакция мәліметтерінің тақтайшасын көре алады.

1С тілінде өңдеуді қолдану

«Бөлшек сауда» конфигурациясына арналған Paym шартты қызметінің мысалын қарастырайық.

  1. 1С жүйесінде «Paym» номенклатуралық каталогының алдын ала анықталған элементін жасайық. 1С: Кәсіпорын режимінде конфигурацияны жаңартқаннан кейін оған «Қызмет» өнім түрін тағайындау керек.
  2. Процедурада «Кестеге элемент қосу. «Сатуларды тіркеу» нысаны модулінің бөлігі» 1С тілінде жазылған қызметпен жұмысты өңдеу деп атаймыз. Төлем сәтті болса, чекті жазып, орналастырамыз:
Егер (Номенклатура = Каталогтар.Номенклатура.Төлем) ЖӘНЕ (Трансферттің түрі. Операциялардың түрлері KKM тексеру. Қайтару) Онда Төлемді өңдеу = Сыртқы өңдеуді беру («Төлем»); PaymentForm = PaymentProcessing.GetForm(); Нәтиже = PaymentForm.OpenModal(); Егер нәтиже = анықталмаған болса, онда қайтару; endIf; ThisObject.Write(DocumentWriteMode.Post); endIf;
  1. Өңдеу алдын ала түбіртекті басып шығаруы керек (қажет болса), күрделі сатылымдардың кестелік бөлігін толтырып, алдын ала анықталған «PaymCheckText» атрибутында чекті басып шығару мәтінін дайындау керек.
  2. Түбіртек модулінің «Түбіртекті жіберу және басып шығару» процедурасында біз өнімнің атауын түбіртек мәліметтерінде сақталғанмен ауыстырамыз. Мәтін тек сату үшін ауыстырылады, әдеттегідей қызмет атауы басып шығарылады;
Әйтпесе Аударым транзакциясының түрі.Операциялардың түрлерін тексеріңіз KKM.Қайтару және таңдау.НоменклатураСілтеме = Каталогтар.Номенклатура.Төлем Содан кейін //Осипов ТөлемМастер кешеніСату жолы = КешендіСату.Табу(Directories.ComplexSalesParameters.Paympertties,"Pro;"); Күрделі сату сызығы анықталмаған болса, онда Өнім.Аты = Қысқартылған LP (Кешенді сату сызығы. Мән); endIf;

Мәміленің аяқталуын қалай қамтамасыз ету керектігі бөлек мәселе. Анау. Егер транзакция қызметте орын алса, оның 1С-де жоғалмағанына қалай көз жеткізуге болады. Ең оңтайлы әдіс – регистрлерді салыстыру. Бірақ бұл бөлек қарастырылатын тақырып.

1С-пен біріктірілген бағдарламаларды пайдалану

XDTO

XDTO жиі веб-қызметтерде қолданылады. Міне, 1С жүйесінде XDTO пайдалану бойынша ең маңызды кеңестер мен рецепттер.

1С платформасындағы XDTO

Конфигурацияның «XDTO нысандары» тармағында сипатталған XDTO бумалары XDTO Factory жаһандық зауытында түрлер мен нысандарды жасау үшін қолжетімді. Бұл бірден байқалмайды.

Схемадағы кейбір типтердің атауы жоқ, оларды алу үшін тип иерархиясынан өту керек;

Мысал XDTO құрылымдарын қамтитын Жүйе тізімін сипаттады. Құрылымның өзін жасау үшін оның түрін келесідей алу керек болды:

Түр = Factory.Type("urn:my.ru:MasterData:Business", "Бизнес").Properties.Get("Жүйе").Түрі;

XDTO-мен жиі кездесетін мәселелер

Әртүрлі XSD схема пішімдері

Кейбір пішімдерде тегтер xs:, кейбіреулерінде xsd: деп аталады, бірақ 1С екі пішімді де қауіпсіз түсінеді. Бір кездері XSD әдетте 1C-ге қатесіз импортталған, бірақ бір пакетті жасамаған жағдай болды. Оған атрибуттың болмауы себеп болды targetNamespaceтегте, сәйкесінше, 1С диаграмманы қай пакетке орналастыру керектігін білмеді, бірақ ол қателер тудырмады.

Қызметтік қолдау

Қызмет екі жүйенің - 1С және сыртқы қосындысы екенін ескере отырып, екі жүйеде де қателер болуы мүмкін, бұл жұмыстың жалпы сенімділігін төмендетеді.

Қызмет көрсету ақауларының себептерін түсінуді жеңілдету үшін шаралар кешенін қолдану ұсынылады.

Тіркеу сұраулары

Сілтемелер

  • XDTO
    • XDTO жақсы сипаттамасы http://pro1c.org.ua/index.php?showtopic=214
  • Тегін қызықты веб-қызметтер:
    • Аэрофлот - ұшу кестелері туралы ақпарат
    • Morpher - атаулардың септелуі http://www.morpher.ru/WebServices/Morpher.aspx
  • Құралмаған:
    • Веб-қызметтерді орнату және пайдалану
      • v8: apache конфигурация файлын қалай өзгертуге болады?
      • v8: веб-қызметтерімен тақырыптың жалғасы - веб-қызметке қосыла алмаймын
      • v8: Мен веб-қызметтерді қарап шығуды жалғастырамын - прокси жасай алмаймын...
      • Knowledge Book: v8: 1C: Enterprise 8 жүйесінде сыртқы веб-қызметтерді пайдалану;

IN Соңғы жылдары API пайдалану және веб-қызметтерге сенім артты. Мұнда сізге айтарлықтай көмектесетін 12 веб-қызметті тестілеу құралдарының тізімі берілген.

Соңғы бірнеше жылда веб-қызметтердің немесе API интерфейстерінің танымалдығы мен қолданылуы артты. Веб-қызмет немесе API - бұл басқа қолданба немесе сервер арасында байланыс құру арқылы қолданбаға байланысуға немесе кейбір процесті/транзакцияны орындауға көмектесетін процедуралар немесе бағдарламалық құрал құрамдас бөліктері. Веб-қызметтің негізінен екі түрі бар: Интернет протоколы арқылы деректер мен ақпаратты тасымалдауға арналған REST және SOAP.

Бұл веб-қызметтер Интернетте қолжетімді және әртүрлі желілерде таратылатындықтан, олар вирустар мен оларға негізделген процестерге әсер ететін қауіпсіздік қатерлеріне осал. Сондықтан веб-қызметтерді немесе API интерфейстерін тексеру олардың дұрыс жұмыс істеуіне және сұрауларға дұрыс жауап беруіне көз жеткізу үшін қажет болады. Бағдарламалық қамтамасыз етуді тестілеу - бұл IT саласындағы перспективалық сала, сіз қажетті білімді аласыз

Нарықта олардың қосылуын, жауап беруін және өнімділігін тексеру үшін бірнеше коммерциялық және тегін тестілеу құралдары бар. Бұл тестілеу құралдары функционалдық тестілеу, жүктеме сынағы, өнімділік сынағы және т.б. сияқты белгілі бір сценарий үшін тестілеуді автоматтандырады.

Мұнда API немесе веб-қызметті тестілеу талаптары үшін ескеру қажет 12 тамаша веб-қызмет тесті құралдары берілген:

SoapUI

SoapUI - ашық бастапқы кросс-платформалық тестілеу құралы. Ол SOAP және REST қызметтерінің функционалдық, регрессия, жүйелілік және жүктеу сынақтарын автоматтандырады. Оны пайдалану оңай және веб-қызмет әрекетін модельдеу және ынталандыру үшін озық технологиялар мен стандарттарды қолдайды.

Басты ерекшеліктер:

  • Project, TestSuite, TestCase немесе LoadTest деңгейінде басып шығару, экспорттау және HTML есептерін қамтамасыз етеді.
  • Hudson, Bamboo, Maven, ANT және JUnit-пен өзара әрекеттесу.
  • SoapUI плагиндері түріндегі жеке функциялар жинағын әзірлеуге мүмкіндік береді.
  • Барлық деректерді жазады, бақылайды және көрсетеді.
  • WS-Security және SSL шифрын шешуді қолдайды.

TestingWhiz

TestingWhiz – API/веб-қызметтерімен үйлесімді сынақты автоматтандырудың «кодсыз» құралы. Ол HTTP және FTP арқылы WSDL интерфейсі арқылы функционалдық, үйлесімділік және жүктеу сынағы мен REST және SOAP веб-қызметтерімен жұмыс істеуге мүмкіндік береді.

Басты ерекшеліктер:

  • API жауабын тексеру үшін жолды салыстыруды қолдайды.
  • JIRA, Mantis және Fogbugz сияқты мәселелерді бақылаудың интеграцияланған құралдарын пайдаланып API ақауларын табуға көмектеседі.
  • Электрондық пошта арқылы көрнекі журналдар мен сынақ есептерін жасайды.
  • Дженкинс, Бамбук және Хадсонмен үздіксіз интеграцияны қамтамасыз етеді.
  • Деректер мен кілт сөзге негізделген тестілеуді қолдайды.

SOAPSonar

SOAPSonar HTML, XML, SOAP, REST және JSON үшін түпкілікті веб-қызмет тестін қамтамасыз етеді. Ол OASIS және W3C стандарттарын қолдана отырып, функционалдық, өнімділік, үйлесімділік және қауіпсіздік сынақтарын қамтамасыз етеді.

Басты ерекшеліктер:

  • XSD мутациясының осалдық сынағына қолдау көрсетеді.
  • WSDL және схеманың жан-жақты талдауын қамтамасыз етеді.
  • Мінез-құлық модельдеуімен және бірнеше бір уақыттағы жүктеме процестерімен жүктеме сынауын орындайды.
  • XML, DOC, XLS, PDF, RTF және RPT пішіміндегі есептерді береді.
  • HP сапа орталығымен өзара әрекеттеседі.

SOAtest

SOAtest - API және API басқаратын қолданбаларды сынауға және тексеруге арналған құрал. Ол REST, JSON, MQ, JMS, TIBCO, HTTP және XML сияқты технологияларды пайдалана отырып, сенімді функционалды блокты қолдауды, интеграцияны, қауіпсіздікті, симуляцияны, жүктемені сынауды қамтамасыз етеді.

Басты ерекшеліктер:

  • Үздіксіз тестілеуді қамтамасыз етеді
  • 120+ протоколдарды/хабарлама түрлерін қолдайды.
  • Пайдалануға оңай интерфейспен келеді.
  • Кодтаусыз күрделі, кеңейтілетін және қайта пайдалануға болатын сынақтарды жасауға көмектеседі.
  • Үздіксіз интеграциялық тестілеуді қолдайды

TestMaker

TestMaker — PushtoTest көмегімен веб-қызметтердің және SOA қолданбаларының өнімділігін тексеруге және бақылауға арналған ашық бастапқы құрал. Ол Jython тілінде жұмыс істейді (Python Java тілінде жазылған). TestMaker Selenium сынақтарын, SoapUI сынақтарын, Sahi сынақтарын немесе Groovy, Java, Python, PHP, Ruby және Perl тілдерінде жазылған кез келген сынақтарды функционалды, жүктеу сынақтарына айналдыра алады.

Басты ерекшеліктер:

  • Функционалдылықты, жүктемені және өнімділікті тексеру үшін пәрмен жолы сұрауын пайдаланады.
  • Интуитивті сыртқы түрістандартты көп терезелі IDE.
  • Сынақтарды орындау және нәтижелерді нақты уақытта көрсету үшін басқару тақтасын қамтамасыз етеді.
  • Барлық Java кітапханаларына және Jython тілінің сыныптарына қол жеткізуге мүмкіндік береді.

Пошташы

Пошташы - қуатты HTTP клиенттік қолдауы бар басқа API/веб-қызметтерді тексеру құралы. Оның сынақ жағдайларын жазуға және API сынақ жағдайларын тиімді тестілеу және басқару үшін жауап деректері мен жауап беру уақыттарын басқаруға мүмкіндік беретін пайдалану оңай сұрау құрастырушысы бар.

Басты ерекшеліктер:

  • API интерфейстерін Postman жиындары деп аталатын функцияларға ұйымдастыруға мүмкіндік береді.
  • API деректері мен басқару элементтерімен бірлесіп жұмыс істеуді және ортақ пайдалануды жеңілдетеді.
  • Пошташы интерфейсінде логикалық сынақтарды жазуға мүмкіндік береді.

vRest

VRest – REST APIS және веб-қызметтерді тестілеуге, салыстыруға арналған құрал. Ол сондай-ақ үшінші тарап API интерфейстерімен немесе HTTP қызметтерімен әрекеттесетін веб, мобильді және жұмыс үстелі қолданбаларын сынауға қолдау көрсетеді.

Басты ерекшеліктер:

  • Бірнеше минут ішінде жалған API жасау үшін жалған сервер функциясы бар.
  • Сынақ жағдайларын жазу және ойнату үшін Chrome кеңейтімі бар.
  • Үздіксіз сервер жұмысы үшін Дженкинспен және мәселені бақылау үшін Jira біріктіруді қолдайды.
  • Рұқсаттарды басқаруды жеңілдетеді.
  • Postman Collections, Swagger 2 сияқты сыртқы құралдардан сынақ жағдайлары мен есептерді экспорттауға және импорттауға мүмкіндік береді.

HttpMaster

HttpMaster - REST веб-қызметтерін сынауға арналған тағы бір эксклюзивті құрал. Ол тестерлерге REST API әрекетін тексеруге және XML, JSON және HTML сияқты пішімдерде нәтижені тексеруге көмектеседі. Әмбебап HTTP құралымен HttpMaster сонымен қатар әзірлеушіге клиент әрекетін және API қолданбасының жауап әрекетін модельдеуге көмектеседі.

Басты ерекшеліктер:

  • Ол озық техникалық дағдыларды қажет етпейтін пайдалану оңай және талғампаз интерфейске ие.
  • HTTP әдістерін пайдаланады, мысалы, GET, POST, DELETE және т.б.
  • қамтамасыз етеді Түрлі түрлержәне тестілеуді жеңілдету үшін өрнектерді сынау.
  • Сынақты жасау және іске қосу үшін пәрмен жолы интерфейсін пайдаланады.
  • Барлық ақпаратты - API қоңыраулары мен жоба деректерін бір жерде сақтауға мүмкіндік береді.

Жүгіру аймағы

Runscope — API өнімділігін сынауға және бақылауға арналған қарапайым құрал. Runscope сонымен қатар API интерфейсін және мобильді қосымшалардың серверін сынауды қолдайды.

Басты ерекшеліктер:

  • Тіпті күрделі жағдайлар үшін динамикалық деректермен сынақтар жасауға мүмкіндік береді.
  • Мәселелерді анықтау үшін көрсеткіштер мен аналитиканы көрсетеді.
  • API сәтсіздігі туралы хабарландыру үшін HipChat, Webhooks, Slack және PagerDuty сияқты құралдармен жұмыс істейді.
  • Бірнеше жерде сынақтарды қайта пайдалануға және іске қосуға мүмкіндік береді.
  • Ынтымақтастықты жақсарту үшін орталықтандырылған сынақты басқаруды жеңілдетеді.

Рапиза

Rapise - қуатты және кеңейтілетін мүмкіндіктері бар сенімді автоматтандыру құралы. Ол REST/SOAP веб-қызметтерін жылдам функционалды тестілеуге арналған ашық және икемді архитектураға негізделген. Rapise сонымен қатар Java, .NET, Ajax, Silverlight және Flash-те ендірілген веб-қосымшаларды сынауға қолдау көрсетеді.

Басты ерекшеліктер:

  • POST, GET, PUT және DELETE сияқты стандартты HTTP әдістерін қолданады.
  • Белгілі бір веб-қызметке қарсы прототип сұрауларын сақтауға мүмкіндік береді.
  • Құрамында кірістірілген REST анықтамасын құрастырушы және нысандар кітапханасы бар.
  • Күшті есеп беру мүмкіндіктері бар.
  • Браузераралық тестілеуді және параллель орындауды қолдайды.

WebInject

WebInject – веб-қызметтерді автоматтандырылған функционалды, қабылдау және регрессиялық тестілеуге арналған тегін құрал. Бұл пәрмен жолы құралы және Perl-ге негізделген, ол сынақтарды орындауды жеңілдетеді, өйткені пәрмен жолында уақыт жұмсаудың қажеті жоқ. Сондай-ақ, оның IDE интерфейсі жоқ, яғни сынақтар сырттан жазылады пайдаланушы интерфейсі WebInject. Ол Perl аудармашысы бар платформаларда жұмыс істей алады.

Басты ерекшеліктер:

  • Нәтижелерді нақты уақытта көрсетуді қамтамасыз етеді.
  • Жүйенің жауап беру уақытын бақылайды.
  • Әртүрлі пайдалануды қолдайды - толыққанды сынақ платформасы да, дербес тестілеуші ​​де.
  • HTML және XML пішіміндегі есептерді жасайды.
  • Сыртқы бақылауға арналған плагин ретінде басқа жүйемен интеграцияға мүмкіндік береді.

Дауыл

Соңында, Storm Java немесе .NET тілінде жазылған веб-қызметтерді сынауға арналған CodePlex-тің тағы бір ашық бастапқы көзі болып табылады. Қазіргі уақытта ол тек SOAP веб-қызметіне қолдау көрсетеді.

Басты ерекшеліктер:

  • Бір пайдаланушы интерфейсінен бірнеше веб-қызметтерді тексеруге мүмкіндік береді.
  • Шикі SOAP сұрауларын өңдеуге көмектеседі.
  • Күрделі деректер түрлерін қамтитын веб-қызмет әдістеріне сілтеме жасауға мүмкіндік береді.
  • WCF қолданбаларын тестілеуді қолдайды.

Әрине, тізім мұнымен бітпейді, өйткені веб-қызметтерді сынау үшін көптеген құралдар бар.

Қазір тіркеліңіз немесе тегін кеңес беру арқылы қоңырау шалыңыз!

Қазіргі уақытта заманауи қолданбаның API-сыз жұмыс істеуі сирек кездеседі. Бұл қарапайым веб-сайтқа да, жоғары жүктелген таратылған жүйелерге де қатысты. API тестілеу сапаны қамтамасыз ету үдерісіндегі негізгі міндеттердің бірі болып табылады. API интерфейстерін сынауды білетін тестерлерге сұраныс күн санап артып келе жатқаны таңқаларлық емес. Бұл курста сіз API тестілеуіндегі әдістер, құралдар және тәсілдер туралы түсінікке ие боласыз және қажетті білімді аласыз, бұл сіздің тестілеу маманы ретіндегі құндылығыңызға оң әсер ететіні сөзсіз.

Бұл курс бағдарламалық қамтамасыз етуді тестілеудің негіздерімен таныс, әрі қарай өсуді және өз дағдыларын жетілдіргісі келетін студенттер үшін пайдалы болады.

Курс бағдарламасы:

1-сабақ. Кіріспе. SOAP протоколы

  • Оқытушы туралы қысқаша;
  • Курстың мақсаты;
  • API, WS дегеніміз не және олар не үшін қажет;
  • API тестілеуінің сапаны қамтамасыз ету процесіндегі рөлі;
  • WS тестілеу құралдарын шолу;
  • WS тестілеуде қолданылатын әдістер;
  • SOAP тарихы;
  • Терминология және негізгі ұғымдар (XML, XSD, Endpoint, WSDL).

2-сабақ: SOAP протоколы. REST архитектурасы

  • Терминология және негізгі ұғымдар (UDDI, XSLT, XPath, XQuery, HTTP әдістері, HTTP күйлері);
  • SOAP құрылымы мен негізгі компоненттері;
  • Қолдану аясы;
  • Жұмыстың ерекшеліктері;
  • Артылықшылықтар мен кемшіліктер;
  • REST архитектурасының ерекшеліктері;
  • Терминология және негізгі ұғымдар (WADL, RESTful, JSON, JSONPath);
  • REST принциптері;
  • Күй коды және негізгі күйлер;
  • CRUD етістіктері;
  • Артылықшылықтар мен кемшіліктер.

3-сабақ. SoapUI-мен таныстыру. REST жобасымен жұмыс істеу

  • Java орнату;
  • SoapUI орнату;
  • Негізгі интерфейс элементтеріне шолу;
  • Білім беру жобасын байланыстыру;
  • Жоба әдістеріне шолу;
  • Сұраныс жіберу және алынған жауапты талдау;
  • Жобаның қолжетімді веб-қызметтерін зерделеу;
  • Тестілеу жоспарын құру;
  • Тест жағдайларын жазу;
  • “TestSuite”, “TestCase”, “TestSteps” элементтері.

4-сабақ. REST жобасымен жұмыс (XML)

  • «Бекітулер» блогы;
  • Әр түрлі деңгейдегі сынақтарды жүргізу;
  • «Қасиеттер» элементі, негізгі мүмкіндіктер;
  • Сипаттармен жұмыс істеу;
  • «Мүлікті беру» элементі;
  • Бекітулермен жұмыс.

5-сабақ. REST жобасымен жұмыс істеу (JSON)

  • Шарттар мен тармақтар;
  • Бекітулермен жұмыс;
  • TestRunner, жұмыс ерекшеліктері;
  • Пәрмен жолынан TS, TC іске қосыңыз;
  • Сынақ жүгірушімен жұмыс;
  • Groovy сценарийлерімен жұмыс.

6-сабақ. Groovy сценарийлерімен жұмыс

  • Статикалық және динамикалық мәліметтермен жұмыс істеу;
  • Сынақ деректерін құру;
  • Біз деректерді «Сипаттар» бөлімінен аламыз;
  • Деректерді жазу және тасымалдау;
  • Шарттар мен тармақтар;
  • Сценарий бекіту.

Сабақ 7. Қосымша мүмкіндіктер

  • Сыртқы кітапханалар мен теңшелетін сыныптарды қосу;
  • Жалған қызметтер;
  • Неліктен бізге Mock қызметтері қажет?
  • Mock қызметімен жұмыс істеу мысалы;
  • CI туралы не деуге болады?
  • Дженкинсті орнату;
  • Дженкинс бойынша жобаны іске қосу.