{"id":55000081,"date":"2017-04-01T00:00:00","date_gmt":"2020-03-27T19:25:43","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=81"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Webservice_testen_am_Beispiel_von_DHL","status":"publish","type":"post","link":"https:\/\/vbentwickler.de\/Webservice_testen_am_Beispiel_von_DHL\/","title":{"rendered":"Webservice testen am Beispiel von DHL"},"content":{"rendered":"<p><b>Wer einen Webshop betreibt, kennt sich mindestens mit den Webseiten des einen oder anderen Paketdienstes aus. Dabei gibt es beim Erstellen von Versandetiketten f&uuml;r Pakete verschiedene Stufen der Automatisierung. Wir wollen zur Stufe der h&ouml;chsten Automatisierung gelangen und unsere Daten f&uuml;r den Versand direkt an den Webservice eines Anbieters, in diesem Fall DHL, weiterleiten und die erstellten Versandetiketten in druckbarer Form herunterladen. Dazu erfahren Sie in diesem Artikel, wie Sie einen Webservice mithilfe des Tools SoapUI testen.<\/b><\/p>\n<h2>Von der Handarbeit zur Vollautomatisierung<\/h2>\n<p>Wer es nicht so mit dem Internet hat, holt sich ein paar Paketscheine von der Post, f&uuml;llt diese h&auml;ndisch mit den Adressen der Empf&auml;nger aus und sendet die Pakete dann ab. Bei kleinen Mengen mag das ein sinnvoller Ansatz sein. Wer hingegen gleich ein paar Lieferungen pro Tag verschickt, gibt die Daten vielleicht direkt in die Eingabemaske der Webseite <b>dhl.de <\/b>ein. Hier k&ouml;nnen Sie alle relevanten Daten angeben &#8211; von der Paketgr&ouml;&szlig;e &uuml;ber das Gewicht bis hin zu den Absender- und Empf&auml;ngerdaten. Wer regelm&auml;&szlig;ig Pakte versendet, m&ouml;chte aber vielleicht noch etwas Geld sparen und nutzt den Gesch&auml;ftskundentarif statt den f&uuml;r Privatkunden. Dann ist <b>www.dhl-geschaeftskundenportal.de <\/b>die richtige Adresse. Hier ben&ouml;tigen Sie allerdings ein Kundenkonto &#8211; auf die Schnelle ein Paket verschicken und per Paypal bezahlen k&ouml;nnen Sie hier nicht. Als registrierter Kunde loggen Sie sich dann auf der Seite ein und k&ouml;nnen &uuml;ber den Men&uuml;punkt <b>Versenden|Versenden (Intraship) <\/b>zur Versandschnittstelle wechseln (siehe Bild 1).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2017_02\/pic_81_001.png\" alt=\"Aufruf des Dienstes Intraship\" width=\"549,6265\" height=\"207,132\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Aufruf des Dienstes Intraship<\/span><\/b><\/p>\n<p>Hinweis: Zum Testen der in sp&auml;teren Beispielen vorgestellten Zugriffe auf den Webservice von DHL ben&ouml;tigen Sie ein Entwickler-Konto bei DHL. Wie Sie dieses anlegen, erfahren Sie weiter unten.<\/p>\n<p>Hier haben Sie dann einige weitere M&ouml;glichkeiten. Dazu geh&ouml;rt das Anlegen eines neuen Auftrags, wobei Sie allerdings nur das Gewicht und die Empf&auml;ngeradresse eintragen m&uuml;ssen &#8211; die Absenderadresse f&uuml;r Ihr Kundenkonto wird in den Einstellungen gespeichert und automatisch hinzugef&uuml;gt. Au&szlig;erdem k&ouml;nnen Sie hier einen Import von Auftr&auml;gen durchf&uuml;hren, wozu Sie auf den entsprechenden Link klicken (siehe Bild 2).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2017_02\/pic_81_002.png\" alt=\"Versandschnittstelle\" width=\"649,559\" height=\"341,0392\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Versandschnittstelle<\/span><\/b><\/p>\n<p>Damit landen Sie auf einer Seite, auf der Sie die Datei mit den daf&uuml;r vorbereiteten Daten ausw&auml;hlen und die enthaltenen Daten einlesen k&ouml;nnen. Nach dem Import zeigt die Seite die eingelesenen Sendungen in einer Liste an und Sie k&ouml;nnen diese markieren und ausdrucken oder auch stornieren. Nach dem Ausdrucken &ouml;ffnet sich ein weiteres Fenster mit einer PDF-Datei, welche die Versandetiketten enth&auml;lt. Diese drucken Sie nun noch auf entsprechendem Papier aus. Dieses stellt DHL seinen Gesch&auml;ftskunden kostenlos zur Verf&uuml;gung (siehe Bild 3).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2017_02\/pic_81_003.png\" alt=\"Auswahl einer Empf&auml;ngerliste\" width=\"649,559\" height=\"434,1525\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 3: Auswahl einer Empf&auml;ngerliste<\/span><\/b><\/p>\n<p>Nun wollen wir dies alles komplett automatisieren. Das hei&szlig;t, dass wir gar keinen Internetbrowser mehr &ouml;ffnen wollen, sondern aus unserer Anwendung heraus einen Webservice aufrufen wollen, dem wir die Absender- und Empf&auml;ngerdaten und die Angaben zur Sendung &uuml;bermitteln wollen und der uns die Etiketten dann in der Antwort zur Verf&uuml;gung stellen soll.<\/p>\n<h2>DHL f&uuml;r Entwickler<\/h2>\n<p>Damit landen wir dann auf der Seite <b>entwickler.dhl.de<\/b>. Hier k&ouml;nnen Sie nun unkompliziert ein Entwicklerkonto erstellen &#8211; die einzelnen Schritte wollen wir hier nicht darstellen. Nach dem Anlegen des Entwicklerkontos und dem Anmelden im Portal finden Sie eine Auswahl der verf&uuml;gbaren APIs (siehe Bild 4). Uns interessiert im Moment vor allem die API f&uuml;r den Gesch&auml;ftskundenversand.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2017_02\/pic_81_004.png\" alt=\"Einige der verf&uuml;gbaren APIs\" width=\"599,593\" height=\"492,067\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 4: Einige der verf&uuml;gbaren APIs<\/span><\/b><\/p>\n<h2>Webservice ansehen<\/h2>\n<p>Wenn Sie sich in den Informationen zur API f&uuml;r Gesch&auml;ftskunden umsehen, finden Sie zun&auml;chst heraus, wo Sie die WSDL-Datei des Webservices finden, n&auml;mlich unter folgendem Link:<\/p>\n<pre>https:\/\/cig.dhl.de\/cig-wsdls\/com\/dpdhl\/wsdl\/geschaeftskundenversand-api\/2.2\/geschaeftskundenversand-api-2.2.wsdl<\/pre>\n<p>Was Sie damit alles anstellen k&ouml;nnen, schauen wir uns mit einem speziellen Tool namens SoapUI an, mit dem Sie den Webservice auch testen k&ouml;nnen, ohne auch nur eine Zeile Code zu programmieren. Dieses laden Sie von der Seite <b>https:\/\/www.soapui.org\/ <\/b>herunter und installieren es. Danach starten Sie SoapUI und klicken auf den Men&uuml;eintrag <b>File|Create Empty Project<\/b>.<\/p>\n<p>Klicken Sie dann mit der rechten Maustaste auf den neuen Eintrag und w&auml;hlen Sie den Kontextmen&uuml;-Eintrag <b>Add WSDL <\/b>aus (siehe Bild 5).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2017_02\/pic_81_005.png\" alt=\"Hinzuf&uuml;gen einer WSDL\" width=\"399,7285\" height=\"287,5991\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 5: Hinzuf&uuml;gen einer WSDL<\/span><\/b><\/p>\n<p>Es erscheint ein kleiner Dialog, in den Sie unter <b>WSDL Location <\/b>den Link mit der WSDL-Datei eintragen (siehe Bild 6). Behalten Sie die Einstellung <b>Create sample requests for all Operations <\/b>bei und klicken Sie auf <b>OK<\/b>.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2017_02\/pic_81_006.png\" alt=\"WSDL eingeben\" width=\"499,6607\" height=\"221,8642\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 6: WSDL eingeben<\/span><\/b><\/p>\n<p>Anschlie&szlig;end zeigt <b>SoapUI<\/b> im Bereich <b>Projects<\/b> alle Funktionen des Webservices mit der soeben analysierten WSDL-Datei an (siehe Bild 7).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2017_02\/pic_81_007.png\" alt=\"Funktionen des Webservices\" width=\"499,6607\" height=\"442,3803\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 7: Funktionen des Webservices<\/span><\/b><\/p>\n<p>Nun wollen wir einen Request zum Testen der Funktion <b>getLabel <\/b>des Webservice erstellen &#8211; <b>getLabel <\/b>h&ouml;rt sich so an, also ob es unsere Aufgabe, ein Label auf Basis der Versanddaten zu erstellen, erf&uuml;llen k&ouml;nnte. Dazu klicken Sie wieder mit der rechten Maustaste auf <b>getLabel <\/b>und w&auml;hlen den Eintrag <b>New request <\/b>aus dem Kontextmen&uuml; aus. Geben Sie nun als Namen <b>getLabelRequest <\/b>ein und schauen Sie sich den Inhalt des nun ge&ouml;ffneten Fensters an.<\/p>\n<p>Hier finden wir ein Element vor, das die f&uuml;r die Authentifizierung notwendigen Daten entgegennimmt und einen Body, in den Sie eine Version und bis zu 30 <b>shipmentNumbers <\/b>eingeben k&ouml;nnen (siehe Listing 1). Das sieht doch eher danach aus, als ob man hier bereits erstellte Label anfragen kann statt neue anzulegen. Also m&uuml;ssen wir wohl doch noch einen Blick auf die &uuml;brigen Funktionen des Webservice werfen.<\/p>\n<pre>&lt;soapenv:Envelope xmlns:soapenv=\"...\"&gt;\r\n    &lt;soapenv:Header&gt;\r\n       &lt;cis:Authentification&gt;\r\n          &lt;cis:user&gt;&lt;\/cis:user&gt;\r\n          &lt;cis:signature&gt;&lt;\/cis:signature&gt;\r\n       &lt;\/cis:Authentification&gt;\r\n    &lt;\/soapenv:Header&gt;\r\n    &lt;soapenv:Body&gt;\r\n       &lt;bus:GetLabelRequest&gt;\r\n          &lt;bus:Version&gt;\r\n             &lt;majorRelease&gt;&lt;\/majorRelease&gt;\r\n             &lt;minorRelease&gt;&lt;\/minorRelease&gt;\r\n             &lt;!--Optional:--&gt;\r\n             &lt;build&gt;&lt;\/build&gt;\r\n          &lt;\/bus:Version&gt;\r\n          &lt;!--1 to 30 repetitions:--&gt;\r\n          &lt;cis:shipmentNumber&gt;&lt;\/cis:shipmentNumber&gt;\r\n          &lt;!--Optional:--&gt;\r\n          &lt;labelResponseType&gt;&lt;\/labelResponseType&gt;\r\n       &lt;\/bus:GetLabelRequest&gt;\r\n    &lt;\/soapenv:Body&gt;\r\n&lt;\/soapenv:Envelope&gt;<\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 1: Request getLabel mit Platzhaltern<\/span><\/b><\/p>\n<h2>Request testen<\/h2>\n<p>Schnell zeigt sich, dass <b>CreateShipment-Order <\/b>die passende API-Funktion ist. Also erstellen wir einen neuen Request auf Basis dieser Funktion. Das Sch&ouml;ne am Tool <b>SoapUI<\/b> ist: Sie k&ouml;nnen bereits jetzt einfach einmal einen Request absenden und erhalten die Antwort direkt im gleichen Fenster. In diesem Fall weist uns die Antwort darauf hin, dass wir keine Authentifizierungsdaten eingegeben haben (siehe Bild 8).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2017_02\/pic_81_008.png\" alt=\"Absenden eines ersten Requests\" width=\"700\" height=\"355,3593\"\/><\/p>\n<div class=\"rcp_restricted\"><p><span style=\"color: #ff0000\">M&ouml;chten Sie weiterlesen? Dann l&ouml;sen Sie Ihr Ticket!<\/span><br \/>\n<span style=\"color: #ff0000\">Hier geht es zur Bestellung des Jahresabonnements des Magazins <strong>Visual Basic Entwickler<\/strong>:<\/span><br \/>\n<span style=\"color: #ff0000\"><a style=\"color: #ff0000\" href=\"https:\/\/shop.minhorst.com\/magazine\/363\/visual-basic-entwickler-jahresabonnement?c=77\">Zur Bestellung ...<\/a><\/span><br \/>\n<span style=\"color: #ff0000\">Danach greifen Sie sofort auf <strong>alle rund 200 Artikel<\/strong> unseres Angebots zu - auch auf diesen hier!<\/span><br \/>\n<span style=\"color: #000000\">Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:<\/span><\/p>\n<\/div>\n\n\t\n\t<form id=\"rcp_login_form\"  class=\"rcp_form\" method=\"POST\" action=\"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000081\/\">\n\n\t\t\n\t\t<fieldset class=\"rcp_login_data\">\n\t\t\t<p>\n\t\t\t\t<label for=\"rcp_user_login\">Username or Email<\/label>\n\t\t\t\t<input name=\"rcp_user_login\" id=\"rcp_user_login\" class=\"required\" type=\"text\"\/>\n\t\t\t<\/p>\n\t\t\t<p>\n\t\t\t\t<label for=\"rcp_user_pass\">Password<\/label>\n\t\t\t\t<input name=\"rcp_user_pass\" id=\"rcp_user_pass\" class=\"required\" type=\"password\"\/>\n\t\t\t<\/p>\n\t\t\t\t\t\t<p>\n\t\t\t\t<input type=\"checkbox\" name=\"rcp_user_remember\" id=\"rcp_user_remember\" value=\"1\"\/>\n\t\t\t\t<label for=\"rcp_user_remember\">Remember me<\/label>\n\t\t\t<\/p>\n\t\t\t<p class=\"rcp_lost_password\"><a href=\"\/data\/wp\/v2\/posts\/55000081?rcp_action=lostpassword\"><\/a><\/p>\n\t\t\t<p>\n\t\t\t\t<input type=\"hidden\" name=\"rcp_action\" value=\"login\"\/>\n\t\t\t\t\t\t\t\t\t<input type=\"hidden\" name=\"rcp_redirect\" value=\"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000081\/\"\/>\n\t\t\t\t\t\t\t\t<input type=\"hidden\" name=\"rcp_login_nonce\" value=\"63a7ad75b7\"\/>\n\t\t\t\t<input id=\"rcp_login_submit\" class=\"rcp-button\" type=\"submit\" value=\"Login\"\/>\n\t\t\t<\/p>\n\t\t\t\t\t<\/fieldset>\n\n\t\t\n\t<\/form>\n<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wer einen Webshop betreibt, kennt sich zumindest mit den Webseiten des einen oder anderen Paketdienstes aus. Dabei gibt es beim Erstellen von Versandetiketten f&uuml;r Pakete verschiedene Stufen der Automatisierung. Wir wollen zur Stufe der h&ouml;chsten Automatisierung gelangen und unsere Daten f&uuml;r den Versand direkt an den Webservice eines Anbieters, in diesem Fall DHL, weiterleiten und die erstellten Versandetiketten in druckbarer Form herunterladen. Dazu erfahren Sie in diesem Artikel, wie Sie einen Webservice mithilfe des Tools SoapUI testen.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[66022017,662017,44000027,44000012],"tags":[],"yst_prominent_words":[],"class_list":["post-55000081","post","type-post","status-publish","format-standard","hentry","category-66022017","category-662017","category-Excel_programmieren","category-Interaktiv"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000081","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/comments?post=55000081"}],"version-history":[{"count":0,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000081\/revisions"}],"wp:attachment":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/media?parent=55000081"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/categories?post=55000081"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/tags?post=55000081"},{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/yst_prominent_words?post=55000081"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}