Користење на надворешни SOAP услугиОперации
SOAP (протокол за пристап до едноставен објект) е стандардизиран протокол за пренос на пораки помеѓу клиент и сервер. Обично се користи во врска со HTTP(S), но може да работи и со други протоколи на апликациски слој (како SMTP и FTP).Тестирањето на SOAP од гледна точка на техниките за тестирање не е фундаментално различно од работата со други API, но бара
(во однос на теоријата на протокол) и специјални алатки за тестирање. Во оваа статија, би сакал да формулирам мала листа за проверка на потребните знаења и вештини, кои ќе бидат подеднакво корисни и за SOAP тестер (кој честопати нема поим за што да се фати по поставувањето на задачата) и за менаџер кој е принудени да го проценат знаењето на тестерите и да развијат планови за обука.
Теоретска основа
Фактот дека SOAP е протокол има многу импликации за тестирање: треба да го проучите самиот протокол, „примарните“ стандарди и протоколи на кои се заснова, и (по потреба) постоечките екстензии.
Наташа
Потсетник
Не заборавајте да напишете статија!
Можете да дознаете повеќе за XML на w3schools или codenet (на руски). Бидете сигурни да обрнете внимание на описот на именските простори (метод за решавање конфликти при опишување на елементи во XML) - нивната употреба е потребна во SOAP.
...
...
XSD
Во вашата работа, исто така, може да наидете на различни „екстензии“ на SOAP - стандарди како WS-*. Еден од најчестите е WS-Security, кој ви овозможува да работите со шифрирање и електронски потписи. Често, заедно со него се користи и WS-Policy, со кој можете да управувате со правата за користење на вашата услуга.
Пример за користење на WS-Security:
Сите овие екстензии се прилично сложени структури кои не се користат во секоја услуга SOAP; нивната детална студија во почетната фаза на совладување на тестирањето на SOAP веројатно нема да биде релевантна.
Како што веќе разбирате, SOAP е сериозна работа за да работите со него, треба да ја знаете теоријата и бројните стандарди. Во пракса, таквата сложеност ќе доведе до многу значителни трошоци за работна сила (на пример, секој пат ќе треба да го гледате дијаграмот во тетратка и да испраќате барања со навивам). Затоа, создадени се алатки за да се олесни работата со SOAP.
XML/XSD уредници
Добриот тестер започнува со тестирање во фазата на пишување документација, па затоа е погодно да се користат специјални уредници за тестирање кола. Двете најпознати се Оксиген (крос-платформа) и Алтова (само за Windows); и двајцата се платени. Ова се многу моќни програми кои аналитичарите активно ги користат кога ги опишуваат услугите.
Во мојата пракса, три функции на уредувачот се покажаа корисни: визуелизација на XSD, генерирање XML врз основа на XSD и валидација на XML врз основа на XSD.
1. XSD визуелизацијапотребни за визуелно прикажување на дијаграмот, овозможувајќи ви брзо да ги идентификувате потребните елементи и атрибути, како и постоечките ограничувања. На пример, за CheckTextRequest, потребен е текстуален елемент и сите три атрибути се опционални (при што атрибутот опции има стандардна вредност нула).
Визуелизацијата е неопходна кога има многу видови и ограничувања во дијаграмот. Ако ви треба само ова и не сакате да плаќате за специјални уредници, тогаш можете да размислите за бесплатни алтернативи (на пример, JDeveloper).
2. XML генерација базирана на XSDкорисно кога сакате да видите валиден пример на порака. Го користам за брзо експериментирање со можните завршувања на пораките и за тестирање на нијансите за тоа како функционираат ограничувањата.
3. По користењето на функцијата од точка 2, корисно е да се изврши XML валидација против XSD– односно проверете ја исправноста на пораката. Заедно, функциите 2 и 3 ви овозможуваат да ги фатите незгодните дефекти во XSD дури и кога самата услуга е во развој.
Тестирањето на САПУН речиси секогаш вклучува користење на SoapUI. Можете да прочитате за користењето на оваа алатка во различни извори (,), но најефикасно ќе биде да ја прочитате официјалната документација. Идентификувам 8 условни нивоа на владеење со SoapUI:
Ниво 1 - Можам да испраќам барања
Научете да креирате проект базиран на WSDL. SoapUI може да ги генерира сите потребни прашања за вас; Сè што треба да направите е да проверите дали се пополнети правилно и да кликнете на копчето „Испрати“. Откако ќе ги развиете вештините за креирање валидни барања, мора да ја совладате уметноста на креирање неточни барања што предизвикуваат грешки.
Ниво 2 - Можам да правам тест пакети и тест случаи
Почнете да правите мини-автотест. Тест комплетите и случаите за тестирање ви дозволуваат да креирате скрипти за тестирање на API, да подготвувате податоци за барања и автоматски да го проверувате добиениот одговор за да се осигурате дека одговара на очекуваното. Отпрвин, тие можат да се користат едноставно како збирки на прашања. На пример, ако сте создале дефект и сакате брзо да го проверите откако ќе го поправите, можете да одвоите посебен комплет за тестирање специјално за барања за дефекти.
Ниво 3 – Можам да пишувам тврдења
Откако ќе ги совладате тест случаите, ќе ви биде корисно да научите како да ги направите автоматски проверливи. По ова, повеќе нема да треба со очи да барате информации за одговорот: ако има автоматска проверка, случаите ќе бидат означени со зелена боја (ако проверката е положена) или црвено (ако не е положена). SoapUI обезбедува голем сет на можни тврдења, но најзгодните и наједноставните се Содржи и Не содржи. Со нивна помош можете да ја проверите достапноста конкретен текство добиениот одговор. Овие проверки поддржуваат и пребарувања со редовни изрази.
Ниво 4 - користете XPath и/или XQuery во тврдењата
За оние кои се малку запознаени со UI со користење на Selenium, јазикот XPath е позната работа. Грубо кажано, XPath ви овозможува да пребарувате елементи во XML документ. XQuery е слична технологија која може да го користи XPath внатрешно; овој јазик е многу помоќен, наликува на SQL. И двата од овие јазици може да се користат во тврдењата. Проверките со нивна помош се повеќе насочени и постабилни, така што вашите случаи ќе уживаат поголема доверба.
Ниво 5 – Можам да пишувам сложени тестови користејќи специјални чекори
Тест случаите може да содржат не само едно барање, туку и неколку (на пример, кога сакате да го имитирате стандардното корисничко сценарио „создај ентитет“ → „извозен ентитет“). Може да има други посебни чекори помеѓу барањата, на пример:
Ниво 6 - користење скрипти Groovy
SoapUI ви овозможува да пишувате Groovy скрипти на различни места. Наједноставниот случај е да се генерираат податоци во самото барање со помош на инсерти $(=). Ги користам овие инсерти цело време:
Целосните скрипти може да се користат како чекори во случаи и проверки. Во одреден момент, ќе откриете дека неколку специјални чекори од петтото ниво може да се заменат со една скрипта.
Ниво 7 - користење на MockServices
SoapUI базиран на WSDL може да генерира Mock објекти. Проценет објект е наједноставната симулација на услуга. Со помош на „потсмевања“ можете да започнете со пишување и дебагирање тест случаи дури и пред услугата да биде навистина достапна за тестирање. Може да се користат и како „никулци“ за привремено недостапни услуги.
Ниво 8 – SoapUI God
Дали ја знаете разликата помеѓу платено и бесплатни верзии SoapUI и користете го SoapUI API во код. Користите додатоци и извршувате случаи преку командната линија и/или CI. Вашите тест случаи се едноставни и лесни за одржување. Во принцип, на овој инструмент го „изедовте кучето“. Би сакал да разговарам со некој кој го совладал SoapUI на ова ниво. Ако сте еден, пријавете се во коментарите!
Еве пример за тоа како изгледа барањето до YandexSpeller API, направено со помош на groovy-wslite:
увезете wslite.saap.*
дефинитивен клиент = нов SOAPClient ("http://speller.yandex.net/services/spellservice?WSDL")
def answer = client.send(SOAPAction: "http://speller.yandex.net/services/spellservice/checkText") (
тело (
CheckTextRequest("lang": "ru", "xmlns":"http://speller.yandex.net/services/spellservice") (
текст („грешка“)
}
}
}
наведете „грешка“ == answer.CheckTextResponse.SpellResult.error.s.text()
тврди „1“ == [заштитена е-пошта]()
Колку што знам, сè уште нема рамки на високо ниво (како Rest-assured) за тестирање на SOAP, но неодамна се појави интересна алатка - карате. Со негова помош, можете да опишете случаи за тестирање САПУН и ОСТАНОК во форма на скрипти како краставица / корнишони. За многу тестери, свртувањето кон карате ќе биде идеално решение, бидејќи таквите сценарија, во однос на сложеноста на пишувањето и придружните случаи, ќе лежат некаде на средината помеѓу користењето на SoapUI и пишувањето сопствена рамка за тестирање SOAP.
Малку е веројатно дека некогаш ќе сакате да го тестирате САПУН само за себе (како што би можеле со REST). Ова е протокол со тешка тежина што се користи во сериозни решенија за претпријатија. Но, неговата тежина е во исто време подарок за тестерот: сите употребени технологии се стандардизирани, а има и висококвалитетни алатки за работа. Сè што се бара од тестерот е желбата да ги научи и користи.
Ајде да ја составиме истата листа за проверка на потребните вештини за тестер. Значи, ако штотуку почнувате да ги тестирате услугите на SOAP, треба да знаете и да можете да користите:
Како што можете да видите, главниот акцент е на учење на стандардите во SoapUI, доволно е само да можете да извршите прашања. Додека се нурнувате во тестирањето на САПУН, ќе наидете на задачи кои ќе бараат посериозни вештини и знаење, но не треба да се обидувате да научите сè одеднаш. Доследноста во зголемувањето на нивото на сложеност на извршените задачи е многу поважна. Следејќи ја оваа препорака, еден ден ќе сфатите дека сте станале добар специјалист во оваа област!
Веб услуги во 1C
Оваа статија ќе разговара за интеграцијата на 1C со постоечките веб-услуги и употребата на самиот 1C како веб-услуга.
Во овој случај, веб-услугите ќе се разберат како системи кои работат на Интернет и обезбедуваат интеракција со нив не само преку SOAP (што е токму веб-услуга), туку и на други начини, вклучувајќи редовни барања за HTTP(S).
Платформата 1C81 воведе имплементација на веб-услуги.
Но, нивната употреба е полн со ризици:
На клиентот му се издава продажен документ (потврда) само доколку трансакцијата на услугата е успешна. Во спротивно, можна е ситуација кога клиентот добива чек и е уверен дека добил услуга, а всушност не.
Веб-услугите на SOAP користат WSDL шеми и XDTO објекти за да претставуваат податоци.
За да користите надворешна услуга, треба да ја преземете нејзината WSDL шема.
Понекогаш WSDL шемата не се вчитува во 1C. Можете да ја проверите валидноста (исправноста) на шемата користејќи кој било валидатор на WSDL шема, на пример http://www.validwsdl.com/.
Треба да ја поставите шемата на некоја http-локација (можете да користите ftp) и да ја наведете адресата на датотеката во која е вчитана шемата:
Особеноста на вчитувањето на WSDL во 1C е дека валидните шеми може да не се вчитаат. Нема вграден валидатор, така што мора да барате грешка користејќи деструктивна анализа, сукцесивно намалувајќи го бројот на елементи во колото. Можете, на пример, да го избришете описот на веб-услугата.
За да тестирате работна надворешна веб-услуга, користете ја обработката „Test ArbitraryWebService.epf“ од пакетот за овој напис.
Тестирањето може да се користи користејќи го примерот на услугата Morpher, која ги одбива имињата (адреса на услугата http://www.morpher.ru/WebServices/Morpher.asmx?WSDL):
На овој начин, можете да тестирате која било услуга што има едноставни влезни точки кои содржат параметри од едноставни типови: број, датум, низа.
За време на обработката, можете исто така да ги наведете најавувањето и лозинката што се потребни за да се овласти пристап до веб-услугата.
За дебагирање, можете да ја користите програмата SoapUI, која може да испрати произволно барање до веб-услуга и да добие одговор од неа.
За жал, SOAP во 1C се однесува прилично каприциозно кога работи преку протоколот HTTPS, практиката покажува дека е невозможно да се постигне HTTPS врска, иако можноста е декларирана во платформата. Недостигот на алатки за дијагностика и дебагирање за да се откријат причините поради кои врската не е воспоставена го зема својот данок. Затоа, погодно е да се користи САПУН преку CURL.
Вградениот механизам за користење HTTPS имплицира дека сите сертификати мора да бидат објавени во заедничка pem-датотека во програмскиот директориум 1C.
Правилото за добра форма е да се создаде операција во сервисот што информира дека услугата е достапна. Ова им го олеснува животот на интеграторите, ќе им биде полесно да проверат дали е воспоставена комуникација со услугата.
На пример, можете да ја користите операцијата Hello без параметри, која едноставно ја враќа Буловата вредност True.
Постапката е добро опишана во документацијата: file:///C:/Program%20Files/1cv81/AddDoc/RU/V8AddDoc81.htm#_Toc176167634:
Задачата за објавување на веб-услугите се сведува на поставување на конфигурациските датотеки *.1cws на веб-услугите во соодветниот директориум на веб-серверот со соодветните поставки за веб-серверот. За да објавите веб-услуги, треба да ја извршите командата од менито „Администрација | Објавување на веб-услуги“.
Како резултат на извршување на оваа команда, ќе се отвори прозорецот за објавување на веб услуги.
Прозорецот за објавување на веб-услуги ја содржи патеката до веб-серверот и две листи:
Користејќи го копчето „Поврзување...“, треба да го наведете веб-серверот на кој сакате да објавувате веб-услуги.
Прозорецот за избор на патека на веб-серверот ви овозможува да ја одредите патеката на два начина:
Избраната веб-услуга се објавува со помош на копчето „Објави“.
За да откажете објавување на веб-услуга, користете го копчето „Избриши“.
Можете да објавувате во локален директориум или преку FTP. Можете исто така да објавувате на оддалечен сервер преку патека UNC ако оддалечениот сервер е дел од локалната мрежа.
По објавувањето, веб-услугата е достапна на адресата „http://localhost/test.1cws“ или „http://xxx.ru/test.1cws“, каде што xxx.ru е адресата на оддалечениот сервер и локалниот хост е типичната адреса на локалниот сервер.
За да пристапите до услугата, треба да поминете автентикација.
Проблемите со овластувањето се добро разгледани овде: http://www.forum.mista.ru/topic.php?id=341168 и во документациската датотека:///c:/Program%20Files/1cv81/AddDoc/RU/V8AddDoc81. htm
Вообичаено, веб-услугата работи под еден специфичен корисник (обично специјално креиран). Можете да „прикачите“ корисник 1C користејќи автентикација на Windows на корисникот на Windows IUSR_ (оневозможи овластување 1C за корисникот). Алтернативно, можете да го исчистите списокот со корисници на 1C, тогаш не е потребно овластување.
Ако се потребни неколку корисници, тогаш можете да креирате неколку најавувања за веб-серверот, да доделите корисник на Windows на секој од нив и, соодветно, да регистрирате пристап до корисниците на Windows во 1C.
Во својствата Корисник и Лозинка на објектот WSProxy, не се користи најавувањето 1C, туку најавувањето на корисникот на веб-серверот.
За да го тестирате 1C како веб-услуга, користете ја обработката „Test ArbitraryWebService.epf“, како што е опишано во делот „Тестирање на надворешна веб-услуга што работи“.
Датотеката 1cws е WSDL опис на веб-услугата 1C.
Вообичаено, малопродажните услуги се користат за обезбедување на различни услуги на населението - прифаќање плаќања, отплата на заеми, Трансфер на пари, купување софтвери така натаму.
Во овој случај, во 1C се генерира потврда за дадената услуга, во која се зачувуваат параметрите на трансакцијата. По што оваа проверка се печати на клиентот со детални информацииза дадената услуга. Можно е да се испечати прелиминарна проверка така што клиентот со својот потпис ги потврди податоците внесени од неговите зборови.
Услугата може да се интегрира на различни начини во програма за малопродажба напишана на јазикот 1C (UT, Retail и други):
За да зачувате информации за трансакција во потврда, треба да креирате дополнителен табеларен дел „Комплексна продажба“ со детали:
Директориумот „Комплексна продажба: параметри“ содржи листа на параметри на трансакцијата.
Попрофитабилно е да се користи табеларниот дел отколку збир на детали, бидејќи трансакцијата може да има многу од нив, а при други проверки кои не се поврзани со услугата, овие детали нема да се користат и ќе заземат дополнителен простор. Покрај тоа, таквото решение е универзално за секоја услуга и не бара реструктуирање на податоците по имплементацијата на нова услуга.
На продавачот му се дава посебна ознака (или печатена форма, за да не се промени конфигурацијата), во која тој може да ја види табличката со детали за трансакцијата за проверката.
Да го погледнеме примерот на условната услуга Paym за конфигурацијата „Малопродажба“.
Ако комплексната продажна линија е недефинирана, тогаш Product.Name = Скратено LP (Комплексна продажна линија. Вредност);
Користење на програми кои се интегрираат со 1C
XDTO често се користи во веб услуги. Еве ги најважните совети и рецепти за користење на XDTO во 1C.
XDTO во платформата 1C
XDTO пакетите, опишани во гранката „XDTO објекти“ на конфигурацијата, се достапни за креирање типови и објекти во глобалната фабрика XDTO Factory. Ова не е веднаш очигледно.
Некои типови во шемата немаат име за да ги добиете, треба да поминете низ хиерархијата на типот.
Вообичаени проблеми со XDTO Различни формати на XSD шемаВо некои формати, ознаките се нарекуваат xs:, во некои xsd:, но 1C безбедно ги разбира двата формати. Еднаш имаше ситуација кога XSD беше увезен во 1C нормално без грешки, но не создаде ниту еден пакет. Причината беше отсуството на атрибут
на ознаката, соодветно, 1C не знаеше во кој пакет да го постави дијаграмот, но не генерираше грешки.
Сервисна поддршка
ВО последните годиниУпотребата на API и потпирањето на веб-услугите се зголемија. Еве список од 12 алатки за тестирање на веб-услуги кои значително ќе ви помогнат.
Во текот на изминатите неколку години, популарноста и употребата на веб-услуги или API-и се зголемија. Веб-услуга или API е збир на процедури или софтверски компоненти кои и помагаат на апликацијата да комуницира или да изврши некој процес/трансакција преку формирање на врска помеѓу друга апликација или сервер. Постојат главно два вида веб-услуги: REST и SOAP за пренос на податоци и информации преку Интернет протокол.
Бидејќи овие веб-услуги се достапни на Интернет и дистрибуирани низ различни мрежи, тие се ранливи на вируси и безбедносни закани кои влијаат на процесите што се потпираат на нив. Затоа, тестирањето на веб-услугите или API-ите станува неопходно за да се осигура дека тие функционираат правилно и правилно одговараат на барањата. Тестирањето на софтверот е перспективна област во ИТ областа на која можете да го добиете потребното знаење
Постојат неколку комерцијални и бесплатни алатки за тестирање на пазарот за тестирање на нивната поврзаност, одговор и перформанси. Овие алатки за тестирање го автоматизираат тестирањето за одредено сценарио како што се функционално тестирање, тестирање на оптоварување, тестирање на перформанси итн.
Еве 12 одлични алатки за тестирање на веб-услуги што треба да ги земете во предвид за вашите барања за тестирање на API или веб-услуги:
SoapUI е алатка за тестирање меѓу платформи со отворен код. Може да ги автоматизира функционалните, регресивните, конзистентните и оптоварувачките тестови на услугите SOAP и REST. Лесен е за користење и поддржува напредни технологии и стандарди за моделирање и поттикнување на однесувањето на веб-услугите.
TestingWhiz е алатка за автоматизација на тестови „без код“ која е компатибилна со API/веб-услуги. Ви овозможува да вршите тестирање на функционална, интероперабилност и оптоварување и да работите со веб-услугите REST и SOAP преку WSDL интерфејс преку HTTP и FTP.
SOAPSonar обезбедува тестирање на веб-услуги од крај до крај за HTML, XML, SOAP, REST и JSON. Обезбедува функционални, перформанси, компатибилност и безбедносно тестирање со користење на стандардите OASIS и W3C.
SOAtest е алатка за тестирање и потврдување на API и апликации управувани од API. Обезбедува поддршка за робусни функционални блокови, интеграција, безбедност, симулација, тестирање на оптоварување користејќи технологии како што се REST, JSON, MQ, JMS, TIBCO, HTTP и XML.
TestMaker е алатка со отворен код за тестирање и следење на перформансите на веб-услугите и SOA апликациите користејќи PushtoTest. Работи на Jython (Python напишан на Java). TestMaker може да ги пренамени тестовите за Selenium, SoapUI тестовите, Sahi тестовите или сите тестови напишани во Groovy, Java, Python, PHP, Ruby и Perl во функционални тестови за вчитување.
Поштар е уште една алатка за тестирање на API/веб-услуги која има моќна поддршка за HTTP клиент. Има лесен за користење создавач на прашања што ви овозможува да пишувате тест случаи и да управувате со податоците за одговор и времето на одговор за ефикасно тестирање и управување со случаите за тестирање API.
VRest е алатка дизајнирана за тестирање, бенчмаркирање на REST APIS и веб-услуги. Исто така, поддржува тестирање на веб, мобилни и десктоп апликации кои имаат интеракција со API од трети страни или HTTP услуги.
HttpMaster е уште една ексклузивна алатка за тестирање на веб-услугите REST. Им помага на тестерите да го тестираат однесувањето на REST API и да го потврдат излезот во формати како што се XML, JSON и HTML. Со својата универзална HTTP алатка, HttpMaster исто така му помага на развивачот да ја моделира активноста на клиентот и однесувањето на одговорот на апликацијата API.
Runscope е едноставна алатка за тестирање и следење на перформансите на API. Runscope, исто така, поддржува тестирање на API-и и заднина на мобилни апликации.
Rapise е робусна алатка за автоматизација со моќни и проширливи карактеристики. Се заснова на отворена и флексибилна архитектура за брзо функционално тестирање на веб-услугите REST/SOAP. Rapise, исто така, обезбедува поддршка за тестирање на веб-апликации вградени во Java, .NET, Ajax, Silverlight и Flash.
WebInject е бесплатна алатка за автоматско функционално, прифаќање и регресивно тестирање на веб-услугите. Тоа е алатка за командна линија и се базира на Perl, што го олеснува извршувањето на тестовите бидејќи нема потреба да се троши време на командната линија. Исто така, нема интерфејс IDE, што значи дека тестовите се напишани надворешно кориснички интерфејс WebInject. Може да работи на платформи со Perl преведувач.
Конечно, Storm е уште една алатка со отворен код од CodePlex за тестирање на веб-услуги напишани во Java или .NET. Во моментов поддржува само веб-услуга SOAP.
Се разбира, списокот не завршува тука, бидејќи има огромна разновидност на алатки за тестирање на веб-услуги.
Пријавете се сега или побарајте повик со бесплатна консултација!
Во денешно време, ретко се случува модерна апликација да функционира без API. Ова важи и за едноставна веб-локација и за високо оптоварени дистрибуирани системи. Тестирањето на API е една од главните задачи во процесот на обезбедување квалитет. Не е изненадувачки што побарувачката за тестери кои знаат како да тестираат API се зголемува од ден на ден. Во овој курс, ќе се здобиете со разбирање за методите, алатките и пристапите во тестирањето на API, ќе го стекнете потребното знаење, што несомнено ќе има позитивен ефект врз вашата вредност како специјалист за тестирање.
Овој курс ќе биде корисен за студентите запознаени со основите на софтверското тестирање кои сакаат да растат понатаму и да ги подобрат своите вештини.
Програма на курсот:
Лекција 1. Воведен. SOAP протокол
Лекција 2: SOAP протокол. REST архитектура
Лекција 3. Воведување на SoapUI. Работа со проект REST
Лекција 4. Работа со проект REST (XML)
Лекција 5. Работа со проект REST (JSON)
Лекција 6. Работа со скрипти Groovy
Лекција 7. Дополнителни карактеристики