<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Java Script Archive - CEOsBay</title>
	<atom:link href="https://ceosbay.com/tag/java-script/feed/" rel="self" type="application/rss+xml" />
	<link>https://ceosbay.com/tag/java-script/</link>
	<description>It&#039;s all about Tech</description>
	<lastBuildDate>Sun, 16 Apr 2023 09:03:52 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.1</generator>

<image>
	<url>https://i0.wp.com/ceosbay.com/wp-content/uploads/2022/11/image.jpg?fit=32%2C32&#038;ssl=1</url>
	<title>Java Script Archive - CEOsBay</title>
	<link>https://ceosbay.com/tag/java-script/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">211828771</site>	<item>
		<title>Selenium &#8211; Zur Automatisierung von Web-Tests für zuverlässige Webanwendungen</title>
		<link>https://ceosbay.com/2022/11/25/selenium/</link>
					<comments>https://ceosbay.com/2022/11/25/selenium/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Fri, 25 Nov 2022 12:36:09 +0000</pubDate>
				<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Automatisierung]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[CD]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Core]]></category>
		<category><![CDATA[Dev]]></category>
		<category><![CDATA[Entwickler]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Java Script]]></category>
		<category><![CDATA[Open]]></category>
		<category><![CDATA[Script]]></category>
		<category><![CDATA[Selenium]]></category>
		<category><![CDATA[Selenium Core]]></category>
		<category><![CDATA[Test]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[Web-Dev]]></category>
		<category><![CDATA[Werkzeug]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=685</guid>

					<description><![CDATA[<p>Selenium ist ein Open Source Framework für automatisierte Softwaretests von Webanwendungen. Entwickelt und von der Firma ThoughtWorks unter der Apache-2.0-Lizenz veröffentlicht. Mit Selenium kann man Interaktionen, in der Regel Testsequenzen, mit einer Webanwendung aufnehmen und &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2022/11/25/selenium/">Selenium &#8211; Zur Automatisierung von Web-Tests für zuverlässige Webanwendungen</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Selenium ist ein <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/">Open Source</a> Framework für automatisierte Softwaretests von Webanwendungen. Entwickelt und von der Firma ThoughtWorks unter der <a href="https://www.apache.org/licenses/LICENSE-2.0" target="_blank" rel="noreferrer noopener">Apache-2.0-Lizenz</a> veröffentlicht.</p>



<p>Mit Selenium kann man Interaktionen, in der Regel Testsequenzen, mit einer Webanwendung aufnehmen und diese Tests automatisiert beliebig oft wiederholen. Es nimmt vor allem Entwicklern sehr viel Arbeit ab, da beispielsweise beim Ausfüllen von Webformularen das Testen wesentlich schneller, flexibler und verlässlicher abläuft.</p>



<p>Selenium basiert rein auf HTML und JavaScript. Für einen schnellen Einstieg kann man direkt die Selenium-IDE z. B. als Browser-Add-on installieren und mit dem Testing beginnen. Der Benutzer interagiert ausschließlich mit Firefox, während Selenium die Aufnahme und das Abspielen der Tests übernimmt.</p>



<h3 class="wp-block-heading">Eine kurze Zeitreise</h3>



<p>Im Jahr 2003 fing Jason Huggins, der bereits einige Testing Tools entwickelt hatte, mit der Entwicklung von Selenium an.</p>



<p>Damals war ThoughtWorks weltweit vertreten, aber jeder, der sich außerhalb des Hauptsitzes befand, hatte mit enormen Latenzzeiten zu kämpfen. Allein die Erfassung von Stundenzetteln dauerte eine Ewigkeit. Um diese Einschränkungen zu überwinden, beschloss Jasons Team, JavaScript im Browser zu verwenden, um die Arbeit zu erledigen, anstatt den Server zu verwenden.</p>



<p>Zu dem Zeitpunkt war JavaScript noch nicht zum Standard geworden. Der von Jason geschriebene Code lief zwar in dem Browser Internet Explorer aber nicht auf Mozilla. Die Anpassung des Codes für Mozilla, hätten den Code für Internet Explorer beschädigen können und umgekehrt. Ganz abgesehen von all den zukünftigen Updates für beide Browser gleichzeitig. Dies hätte mehr Schaden als Nutzen verursacht.</p>



<p>Jasons Team brauchte eine zuverlässige Methode, um die Anwendung in den Browsern zu testen. Also recherchierten Jason und zwei weitere Kollegen bei ThoughtWorks ob es irgendwelche Tools gab, die sie verwenden konnten. Wie es meistens so ist, war nichts zu finden, was den eigenen Anforderungen entsprach. So ging es an die Entwicklung von Selenium. Das Tool, welches sie programmiert hatten, konnte Daten eingeben und Schaltflächen auf einer Reihe von Webseiten anklicken, um verschiedene Testszenarien zu durchlaufen dies in mehreren Browsern gleichzeitig.</p>



<p>Im Laufe der Zeit schlossen sich immer mehr Mitarbeiter von ThoughtWorks seiner Arbeit an, bis Paul Hammant dem Team beitrat und die Entwicklung des Programms in die Richtung des heutigen &#8222;Selenium Remote Control&#8220; (RC) leitete. Dabei handelt es sich mittlerweile um ein veraltetes Modul.</p>



<p>2007 wechselte Huggins zum Softwarekonzern Google, wo er die Weiterentwicklung und die Fehlerausbesserung des Programms zusammen mit anderen Programmierern vorantrieb. Zur gleichen Zeit entwickelte Simon Stewart bei ThoughtWorks die Browsersteuerung Webdriver (Darüber schreibe ich voraussichtlich auch noch einen Beitrag). Da es für die Entwickler beider Projekte nicht sinnvoll erschien, zwei separate Projekte voranzutreiben, beschlossen sie die beiden Projekte zu &#8222;Selenium Webdriver&#8220; bzw. &#8222;Selenium 2.0&#8220; zu vereinen.</p>



<p>2008 entwickelte Philippe Hanrigou &#8222;Grid&#8220;, welches die Ausführung multipler Instanzen ermöglichte. So konnte man das Tool auf einer unbegrenzten Anzahl von Rechnern laufen lassen. Dies führte dazu, dass die Ausführungszeit für große Teststrukturen drastisch verkürzt wurde.</p>



<h3 class="wp-block-heading">Randnotiz 😀</h3>



<p>Der Name Selenium entstand aus einer scherzhaften Bemerkung von Huggins, der in einer E-Mail seine Mitbewerber Mercury damit verspottete, dass eine Quecksilbervergiftung (Mercury poisoning) durch die Einnahme von Selenium geheilt werden kann.</p>



<h3 class="wp-block-heading">Bestandteile von Selenium</h3>



<h4 class="wp-block-heading">Selenium Core</h4>



<p>Das Core-Modul enthält die komplette Basisfunktionalität von Selenium. Die Testbefehl-API und den TestRunner. Unter Verwendung des Core-Modules kann die TestRunner.html-Webseite mit verschiedenen Browsern geöffnet werden. Dadurch werden Kompatibilitätstests mit verschiedenen Browsertypen ermöglicht.</p>



<h4 class="wp-block-heading">Selenium IDE</h4>



<p>Das Selenium IDE ist ein Add-on für Google Chrome und Mozilla Firefox, mit dem man direkt im Browser durch die Interaktion mit einer Webanwendung Testfälle aufnehmen und wieder abspielen kann. Neben der reinen Capture-Replay-Funktionalität lassen sich weitere Überprüfungen mittels „verify“ und „assert“ einbinden. Zudem wird das schrittweise Abspielen von Testfällen, das Setzen von Breakpoints zur Überprüfung der Testfälle und die Wiederverwendung von geteilten Testabläufen unterstützt. Einzelne Testfälle lassen sich zu Testsuites kombinieren und wiederverwenden.</p>



<h4 class="wp-block-heading">Selenium WebDriver</h4>



<p>Selenium WebDriver ist der Nachfolger von Remote Control. Auf Remote Control werde ich nicht weiter eingehen, da dieses Modul veraltet ist. Es akzeptiert Befehle in Selenese oder über die Client-API und leitet diese an den jeweiligen Browser weiter. Eine Besonderheit bildet HtmlUnit. Ab Version 3.0 ist HtmlUnit nicht mehr Bestandteil des WebDrivers. Es handelt sich dabei um einen Webbrowser ohne grafische Anzeige (Headless). Der Selenium WebDriver ist über den Browser Driver implementiert, wodurch die gängigsten Browser unterstützt werden.</p>



<h4 class="wp-block-heading">Selenium Grid</h4>



<p>Selenium Grid ist eine Erweiterung von RC und ermöglicht die parallele Ausführung von Tests auf mehreren Servern, um die Dauer der Testdurchführung zu verkürzen. Der Client-Treiber verbindet sich dabei mit dem Hub anstatt mit dem Server. Der Hub wiederum leitet die Tests auf freie Selenium-Server weiter.</p>



<h4 class="wp-block-heading">Fazit</h4>



<p>Selenium ermöglich, wie mehrfach angesprochen, das direkte Aufzeichnen diverser Test-Szenarien. Bei der Aufzeichnung solcher Testszenarien ist auf jeden Fall Vorsicht geboten, da sich bei einer unkonzentrierten Arbeitsweise Fehler einschleichen können, die einem nachfolgend eventuell nicht auffallen. Die Nutzung von Testsuites kann Sinn machen, da man dadurch eine Gliederung in separate Module erreicht. Die Auswirkungen von Änderungen innerhalb der Applikation können so einfacher auf bestehende Tests übertragen werden, was zu einer besseren Wartung und Wiederverwendbarkeit führt. Sicherlich kann man auch die Arbeit damit wesentlich optimierter und angenehmer realisieren, indem man einiges automatisiert. Aber dazu vielleicht in der Zukunft mehr.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2022/11/25/selenium/">Selenium &#8211; Zur Automatisierung von Web-Tests für zuverlässige Webanwendungen</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2022/11/25/selenium/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">685</post-id>	</item>
		<item>
		<title>Node.js® mit npm auf MacOS</title>
		<link>https://ceosbay.com/2022/11/11/node-js-mit-npm-auf-macos/</link>
					<comments>https://ceosbay.com/2022/11/11/node-js-mit-npm-auf-macos/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Fri, 11 Nov 2022 07:16:47 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[MacOS]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Befehl]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Dev]]></category>
		<category><![CDATA[Homebrew]]></category>
		<category><![CDATA[https]]></category>
		<category><![CDATA[Installation]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Java Script]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[JS]]></category>
		<category><![CDATA[Laufzeitumgebung]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Minification]]></category>
		<category><![CDATA[Minify]]></category>
		<category><![CDATA[Node.JS]]></category>
		<category><![CDATA[npm]]></category>
		<category><![CDATA[Paket]]></category>
		<category><![CDATA[Paketmanager]]></category>
		<category><![CDATA[Sass]]></category>
		<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[Spotlight]]></category>
		<category><![CDATA[Sudo]]></category>
		<category><![CDATA[Syntactically Awesome Stylesheets]]></category>
		<category><![CDATA[Terminal]]></category>
		<category><![CDATA[Update]]></category>
		<category><![CDATA[Version]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=416</guid>

					<description><![CDATA[<p>Node.js® ist eine Single-Thread, JavaScript-basierte, Open Source, plattformübergreifende Laufzeitumgebung für die Erstellung von schnellen und skalierbaren Webservern und vernetzten Anwendungen. Hier noch die Website. Man kann damit auch hilfreiche Aufgaben auf dem Computer ausführen, wie z.B. &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2022/11/11/node-js-mit-npm-auf-macos/">Node.js® mit npm auf MacOS</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Node.js® ist eine Single-Thread, JavaScript-basierte, Open Source, plattformübergreifende Laufzeitumgebung für die Erstellung von schnellen und skalierbaren Webservern und vernetzten Anwendungen. Hier noch die <a href="https://nodejs.org" target="_blank" rel="noreferrer noopener">Website</a>. Man kann damit auch hilfreiche Aufgaben auf dem Computer ausführen, wie z.B. die Verkettung und Minimierung von JavaScript-Dateien und die Kompilierung von Sass-Dateien in CSS. Node ist kein Framework! (Kurz zu Framework: Ein Programm-Code besteht aus vielen kleinen Bausteinen. Um das Programmieren zu erleichtern und um Zeit zu sparen, gibt es sogenannte <em>Frameworks</em>. Dazu aber mehr in einem anderen Beitrag.</p>



<h2 class="wp-block-heading">Minimierung (Minification / Minify)</h2>



<p>Unter Minifizierung versteht man das Entfernen aller überflüssigen Zeichen aus dem Quellcode von interpretierten Programmiersprachen oder Markup-Sprachen, ohne dessen Funktionalität zu verändern. Dazu in einem separaten Beitrag mehr.</p>



<h2 class="wp-block-heading">CSS (Cascading Style Sheets)</h2>



<p> Eine Programmiersprache, die es ermöglicht, das Design von elektronischen Dokumenten zu bestimmen. Auch hier bei einem separaten Beitrag mehr.</p>



<h2 class="wp-block-heading">Sass (Syntactically Awesome Stylesheets)</h2>



<p>CSS mit Superkräften bzw. auf Steroiden. Dies werde ich auch in einem separaten Beitrag ausführlich thematisieren.</p>



<h2 class="wp-block-heading">npm</h2>



<p>Der Node Package Manager ist ein Paketmanager für die JavaScript-Programmiersprache, der von npm, Inc. gepflegt wird. npm ist der Standard-Paketmanager für die JavaScript-Laufzeitumgebung Node. Es vereinfacht das Installieren von Node-&#8222;Paketen&#8220;. Ein Paket, auch Modul genannt, ist lediglich eine Code-Bibliothek, die Node um nützliche Funktionen erweitert. Das Modul &#8222;request&#8220; zum Beispiel vereinfacht https-Anfragen, so dass man problemlos Webressourcen von anderen Websites abrufen kann. npm wird bei der Installation von Node mitinstalliert. Obwohl es auf der Node-Website ein MacOS-Installationsprogramm gibt, wird die Verwendung von <a href="https://ceosbay.com/2022/10/25/homebrew-der-fehlende-paketmanager-fuer-macos-lassen-wir-fluegel-wachsen/">Homebrew</a> zur Installation und Aktualisierung von Node empfohlen. Über und wie man <a href="https://ceosbay.com/2022/10/25/homebrew-der-fehlende-paketmanager-fuer-macos-lassen-wir-fluegel-wachsen/">Homebrew</a> installiert bzw. verwendet, kann in einem anderen <a href="https://ceosbay.com/2022/10/25/homebrew-der-fehlende-paketmanager-fuer-macos-lassen-wir-fluegel-wachsen/">Beitrag</a> gelesen werden, den ich geschrieben habe.</p>



<p>Grundsätzlich sollte man mit dem Mac-Terminal vertraut sein, da es zum Installieren und Testen von Node und npm verwenden werden muss. Die Terminal-Anwendung befindet sich im Dienstprogramme Ordner unter den Programmen. Ansonsten kann man auch einfach mit der Tastenkombination Command + Leertaste im Spotlight nach dem Terminus Terminal suchen. Durch die Verwendung von Homebrew können etwaige Sicherheitsprobleme vermieden werden, die mit der Verwendung des sudo-Befehls zur Installation von Software wie Node und Node-Modulen einhergehen.</p>



<h2 class="wp-block-heading">Installation</h2>



<p>Die Installation von Node.js® und npm ist mit Homebrew relativ einfach. Homebrew übernimmt das Herunterladen, Entpacken (Eine komprimierte bzw. archivierte Datei extrahieren) und Installieren von Node.js® und npm auf dem System. Der Installationsprozess dauert lediglich ein paar Minuten. </p>



<p>Ist das Terminal geöffnet, geht es folgendermaßen weiter:</p>



<pre class="wp-block-code"><code>brew update</code></pre>



<p>brew update aktualisiert die Repository</p>



<pre class="wp-block-code"><code>brew install node</code></pre>



<p>Hiermit lässt sich Node.js® installieren</p>



<pre class="wp-block-code"><code>node -v</code></pre>



<p>Mit diesem Befehl lässt sich überprüfen, ob und in welcher Version Node installiert ist.</p>



<pre class="wp-block-code"><code>npm -v</code></pre>



<p>Und hiermit, ob und in welcher Version npm installiert ist.</p>



<p>Damit sind Node.JS® und npm erfolgreich installiert!</p>
<p>Der Beitrag <a href="https://ceosbay.com/2022/11/11/node-js-mit-npm-auf-macos/">Node.js® mit npm auf MacOS</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2022/11/11/node-js-mit-npm-auf-macos/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">416</post-id>	</item>
	</channel>
</rss>
