Testen der Web-ServiceErstellt mit dem Web-Service läuft, können Sie daran gehen, den Kunden mit dem Programmieren beginnen. Aber das ist der falsche Ansatz wäre. Eines der Dinge, die mit Web-Services und SOA ist, dass die Client-und Server mit einem Vertrag kommunizieren, verändert hat. Zuvor, Client / Server-Anwendungen kommuniziert über ein Protokoll, dass die Entwickler beschlossen. Wenn die Entwickler eine neue Methode oder eine Information benötigt, die Änderung, die gemacht werden würde. Es war keine große Sache, die Änderungen auf die Fliege zu machen. Mit Web-Services und SOA, die nicht mehr der Fall ist. Mit dem Aufkommen von Web-Services und SOA, haben wir die Möglichkeit, einen Vertrag, die wiederverwendet werden können und von anderen Parteien gemeinsam zu definieren. Wenn es einen großen Vorteil, SOA, ist es die Möglichkeit der nahtlosen Austausch von Daten.
Setzen wir dies in einem anderen Kontext. Stellen Sie sich vor Sie besitzen eine Pizzeria mit take-Befehle, um Online-Bestellungen, und warten Mitarbeiter von Aufträgen unter Berücksichtigung von Vor-Ort-Kunden. So können Kunden eine Pizza in ein paar verschiedene Möglichkeiten um, und jeder Weg hat wohl ein völlig anderes Bestellsystem. In der Tat ist es fraglich, dass man sogar mehr zu erwarten Personal ein, um in der ersten stattfinden. In der heutigen Zeit können Sie einen Touchscreen auf jedem Tisch und lassen Sie den Kunden, um ihre Pizza direkt. Dann, als der Auftrag erfüllt ist, bringt es jemand auf den Tisch. Oder wie wäre es mit der Kunden eine Pizza online bestellen, und dann zeigen, dass sie wollen, um es in das Restaurant zu einer bestimmten Zeit zu essen? Das System konnte eine Tabelle für die Kunden behalten, so dass es ihnen möglich, einen Platz auf ihren reservierten Tisch nehmen, wenn sie das Restaurant betreten und ihre Mahlzeit sofort. Aber wäre es nicht, dass die Erfahrung, zu gehen, Restaurant ruinieren? Meiner Meinung nach wäre es nicht ins Restaurant gehen kann ein ziemlich hektisch Erfahrung. Diese Pizzeria Beispiel veranschaulicht die Client / Server-Architekturen vergangener Tage mit warten beteiligten Personals Bestellungen der Kunden. SOA, auf der anderen Seite, stellt eine einheitliche Pizza-Bestellsystem unabhängig von dem Eintrag Gerät verwendet wird (persönlich, online, per Handy, etc.). Schließlich ist eine Pizza warten, durch die Mitarbeiter anders aus als eine Pizza bestellt online bestellen? Die Antwort ist nein. Nachdem Sie Ihre Web-Service in mehreren Kontexten verwendet stellt eine Herausforderung dar, dass der Vertrag muss ausgiebig getestet werden. Wenn Sie nicht umfassend den Webdienst zu testen, können Sie Probleme verursachen. Zum Beispiel, stellen Sie sich einen Blog Web-Service-Feed, dass ein kleiner Fehler war. End-Entwickler, die Ihre Verwendung in Futtermitteln Begegnung der Fehler und sehen, dass es Minderjährigen. Um Ärger zu sparen, haben sie einen schnellen kleinen Trick. Workarounds sind gefährlich, weil sie davon ausgehen, was eine bestimmte Art und Weise geschehen. Sie geben Ihren Feed an andere dritte Parteien, die nicht die minor bug Begegnung nicht für einen oder anderen Grund. Je mehr Zeit vergeht, erhält ein Kunde das Futter, und sie auf den Fehler. Anders als alle anderen, schicken sie eine E-Mail über den Fehler und fordert diese auf, festgesetzt werden. Also, was tun Sie, wenn Sie den Fehler benachrichtigt werden? Haben Sie den Fehler beheben oder nicht? Die Antwort sollte sein, dass Sie den Fehler zu beheben, doch die Realität ist, dass, wenn der Fehler-Moll, den Fehler zu beheben könnte funktionierenden Code nicht mehr funktioniert, führen. Aus diesem Grund Tests AWeb Service ist so kritisch: durch Versuche, minimieren Sie die Chance, zukünftige Probleme. Web-Service-Tests haben auf Vollständigkeit und umfangreiche, es ist nicht aminor Unternehmen. Bei der Blog-Anwendung, ein Online-Test-Service kann Ihnen das Leben leichter zu machen. Die Feed-Validierung stellt sicher, dass die Atom-Feed ist richtig, aber der Feed-Validator überprüft nicht, wenn der Inhalt des Feeds korrekt sind. Das ist eine andere Ebene der Erprobung und Validierung, die notwendig sein würden. Die Feed-Validator macht es möglich, die vom Server zum Client zu entkoppeln. Nachdem die Client-und Server entkoppelt macht es einfacher, Veränderungen in der globalen Architektur einführen, weil Sie die Änderungen vornehmen können allmählich. Bezug nehmend auf die ursprüngliche Architektur der Blog-Architektur vorstellen, die Änderung der Struktur, wie Blog-Einträge werden angezeigt. Da der Client-und Server-Code miteinander verflochten sind, kann der Entwickler versucht sein, den Server-Code zu zwicken. Allerdings erzeugt der Server in drei unterschiedlichen Formaten, und Sie haben zu fragen, ob die zwickt noch einer der beiden anderen Formate hinzugefügt werden. Mit einem einzigen Feed, dass überprüft wird, Client-Programmierer haben keine andere Wahl, als ihren eigenen Code zu optimieren. Client-Programmierer nicht berühren kann den Code des Servers und können daher nicht vorstellen unbeabsichtigte Fehler. Erwähnte ich, dass die Prüfung eine Schnittstelle erfordert einen gewissenhaften und umfangreichen Reihe von Prüfungen der Feed-Validator genau das bietet. Aber nicht alle Web-Services in die Kategorie eines Blog-Anwendung, und Sie haben Ihren eigenen Test-Infrastruktur zu implementieren. Idealerweise sollten Sie eine Architektur wie ein Feed-Validator, denn sie macht Tests zu einem Kinderspiel. Aber ein Feed-Validator ist ein großes Programm, und Sie haben wahrscheinlich nicht genug Zeit, um ein so kompliziertes Stück Code zu schreiben. Die Erfahrung hat mich gelehrt, dass der einfachste Weg, um Tests zu schreiben schnell und sauber ist eine Programmiersprache, die Unterstützung für Test-Driven Development Techniken (zB NUnit-oder JUnit) hat zu verwenden. Sie können auch eine dynamische Sprachen wie Python oder Ruby. Etwas anderes Erfahrung hat mich gelehrt, ist nicht das Rad neu erfinden. Wenn ein Protokoll, das XML-Grammatik oder die Umsetzung bereits vorhanden ist, dann verwenden Sie diese. Versuchen Sie nicht, kommen mit neuen Wegen für die gleiche alte Sache, die Sie nur noch schwieriger gestalten Ihr Leben. Es könnte ein wenig komplexer zunächst an den Standard halten, aber auf lange Sicht werden Sie weniger Probleme haben. Zum Beispiel durch Festhalten an der Atom-Feeds in die Blog-Architektur können Sie einen öffentlich zugänglichen Tool verwenden, um die Anwendung zu testen. Es erfordert keine Test-Code schreiben zu müssen, müssen Sie nur noch ein paar Test-Skripts schreiben, um die Feed Validator-Website aufrufen. Die Umsetzung der ClientDie Implementierung eines Client in einer Ajax-Kontext ist immer in zwei Schritten: Laden des Dokuments sowie die Ausführung des Dokuments. Im Falle der Blog-Anwendung gibt es keine Notwendigkeit für den Kunden zu intervenieren, damit das Dokument ausgeführt werden sollen, sobald sie geladen wurde. In JavaScript ist der body.onload Ereignis ausgelöst, sobald das Dokument vollständig geladen wurde. Es ist sehr wichtig, dass Sie die body.onload Ereignis und nicht irgendein Skript, das ausgeführt wird, während das Dokument geladen wird zu nutzen. Während das Dokument geladen wird, wird es als unvollständig, so verweist HTML-Elemente in das Dokument möglicherweise erfolgreich sein, aber es vielleicht nicht. Bei der Verwendung des body.onload Fall können Sie sicher sein, dass das Dokument vollständig geladen wurde und jedes Element, das muss Referenzierung zur Verfügung steht. Wenn die body.onload Ereignis ausgelöst wird und der Inhalt geladen wird, kann der Inhalt bearbeitet und in das HTML-Dokument injiziert. Für den Benutzer scheint dieses zweistufigen Prozess wie eine einzige Seite zu laden, anstatt ein Zwei-Schritt-Verfahren (wenn sowohl die Client-und Server genug Bandbreite). Wenn das Zwei-Schritt beim Laden nicht schnell genug ausführen, werden Sie ein leichtes Flackern Hinweis, daß einige Inhalte geladen und angeordnet. Das Ergebnis ist das gleiche, und der Kunde wird mit einem einzigen Dokument, das sich als ein einziger Antrag stellt vorgestellt. Kurz gesagt, dieser Prozess ist nicht anders als der Bau einer herkömmlichen Client / Server-oder n-Tier-Anwendungen, mit Ausnahme von offenen Standards und eine dynamische Programmiersprache Umgebung verwendet werden. Mit den gesamten Client-Architektur, lassen Sie's dig ein wenig tiefer in die einzelnen Schritte. Laden des DokumentsWie bereits erwähnt, ist der erste Schritt beim Laden des Dokuments. Wenn wir das Dokument beim Laden zu vergleichen mit dem Laden einer traditionellen Anwendung, ist das, was passiert ist, dass der Browser wie ein Betriebssystem Vorbereitung der Speicher-Module ist, und Grundlage für das Programm auszuführen. So zum Beispiel, wenn wir das Dokument geladen werden, den folgenden Code wird das XMLHttpRequest-Objekt instanziieren: getTransport: function () (return Try.these (function () (return new ActiveXObject ( 'Msxml2.XMLHTTP')), function () (return new ActiveXObject ( 'Microsoft.XMLHTTP')), function () (return new XMLHttpRequest ())) | | false;) Die Quelle des Codes ist nicht wichtig, weil viele Ajax-Bibliotheken das Gleiche tun. Wesentlichen, wenn der Code ausgeführt wird, versucht sie herauszufinden, welche Browser es sich mit so kann es zur Laufzeit den richtigen Weg zurück auf das XMLHttpRequest-Objekt zu instanziieren. Ich behaupte, das ist der falsche Ansatz, und es verwendet die traditionelle ausführbare Datei geladen und ausgeführt Mentalität. Wenn ein Betriebssystem geladen wird ein traditionelles Programm, die Variablen, Module, usw. sind vor der Programmausführung initialisiert. Während ein Browser lädt Quellcode, hat der Browser die Möglichkeit, JavaScript-Code auszuführen. In diesem Sinne, könnten Sie schreiben den folgenden Code ein: if (window.ActiveXObject) (FactoryXMLHttpRequest = function () (return new ActiveXObject ( "Microsoft.XMLHTTP");)) else if (window.XMLHttpRequest) (FactoryXMLHttpRequest = function () (return new XMLHttpRequest ();)) Im Beispiel gibt es keine Funktion, nur eine Entscheidung. Die Entscheidung ist, wenn der Browser das Dokument geladen wird Internet Explorer, dann definieren die FactoryXMLHttpRequest Funktion ActiveXObject instanziieren. Wenn der Browser Internet Explorer nicht, dann definieren die FactoryXMLHttpRequest Funktion, um das XMLHttpRequest-Objekt direkt instanziieren. Der zweite Source-Code-Initialisierung Beispiel ist nicht so flexibel während der Laufzeit, da die definierten FactoryXMLHttpRequest Funktion kann nur das XMLHttpRequest-Objekt, wie es definiert wurde, wenn das Dokument geladen wurde instanziieren. Auch wenn dies scheint wie ein Nachteil, muss man sich fragen, was sind die Chancen, dass die geladenen Dokument verschoben Byte für Byte in einen anderen Browser-Typ werden. Die Antwort ist, dass es keine Chance, dies geschehen wird, denn es ist nicht möglich. Der Vorteil des zweiten Quelltext-Beispiel ist diese Funktionalität kann der Browser ausgeführt wird, während auf das Dokument geladen wird abgestimmt werden. Im Beispiel war die Stimmung auf dem Browser-basiert. Es gibt andere Wege zu stimmen und die Gründe für Tuning Ihrer Anwendung, wie z. B. herauszufinden, die Sprache oder die Abmessungen des Browsers. Tuning hat den Vorteil, dass Sie nicht brauchen, tragen rund um die ausführbare Gepäck, das mit den Beschlüssen zur Laufzeit gemacht zugeordnet ist. Dies ist ein wichtiger Faktor, sich daran zu erinnern, wie Sie den Speicherbedarf des Codes kann durch Vorkonfiguration der Anwendung während der Be-Dokument zu reduzieren. Aber es gibt einen großen Nachteil der Verwendung einer Be-Dokument generiert Konfiguration mit, um mit Serialisierung zu tun. Frühere Artikel gezeigt, wie JavaScript Serialisierung verwenden, um Proxies oder Mixins generieren. Wenn ein Dokument-Konfiguration geladen wird serialisiert und auf einem HTTP-Server gespeichert sind, und dann ist es zu einem späteren Zeitpunkt, geladen mit einem anderen Browser, wird ein Fehler generiert werden. Die Faustregel ist, dass, wenn es ein Vorteil in Form von Leistungs-oder Ressourcen, verwenden Sie das Dokument geladen-Konfiguration. Verwenden Sie die allgemeine Laufzeit Ansatz, der eine Laufzeit Entscheidungsprozess umfasst, wenn es eine geringe Chance, dass der Code serialisiert werden. Und für diejenigen Fälle, in denen es wirklich egal, ein oder andere Weise benutzen, was für Sie Sinn macht. Ausführen des DokumentNachdem das Dokument geladen wurde, ist die body.onload Ereignis ausgelöst und der zugehörige Code wird ausgeführt. In HTML Hinsicht sieht der Code wie folgt. Beachten Sie, dass der Code für Klarheit abgekürzt wurde. Quelle: / client / index.html Funktion LoadAtomFeed () ( var asynchronen = new Asynchronous (); asynchronous.settings = ( onComplete: function (xmlhttp) ( parseAtom (XMLHTTP.responseXML); flexbox.update (); ) ) asynchronous.get ( "/ services / blog / Einträge / current"); )Funktion InitializePage () (/ / Initialisierung Extra-Code aus über Schnitt LoadAtomFeed ();) onload= "InitializePage ()"> Betrachten Sie die fett-Code. Wenn das Dokument geladen wird, ist die body.onload Ereignis ausgelöst. InitializePage Das ruft die Funktion aufruft, der wiederum die LoadAtomFeed Funktion. Bei der Durchführung des LoadAtomFeed, der Asynchronous Klasse instanziiert wird, die instanziiert wiederum das XMLHttpRequest-Objekt. Ein Artikel eingereicht von Sonja Lande Disclaimer:Unsere Website ist nicht verantwortlich für den Inhalt dieses Artikels. Webarticles ist eine kostenlose Informationsquelle. Wichtig: Dieser Artikel "Testen der Web Service" wurde durch ein automatisches Software übersetzt. Wir fühlen uns leid für alle Rechtschreibfehler, die möglicherweise aufgetreten sind. Vielen Dank für Ihr Verständnis.
|
|||||
| Online: 333 users browsing the articles directory |
|
|