{"id":9071,"date":"2020-06-04T10:03:09","date_gmt":"2020-06-04T08:03:09","guid":{"rendered":"https:\/\/sii.pl\/blog\/?p=9071"},"modified":"2023-10-18T12:27:05","modified_gmt":"2023-10-18T10:27:05","slug":"biblioteka-do-testow-automatycznych-ui-aplikacji-web-w-c","status":"publish","type":"post","link":"https:\/\/sii.pl\/blog\/biblioteka-do-testow-automatycznych-ui-aplikacji-web-w-c\/","title":{"rendered":"Biblioteka do test\u00f3w automatycznych UI aplikacji Web w C#"},"content":{"rendered":"\n<p>Od pewnego czasu pracowali\u015bmy z <a href=\"mailto:mtadla@sii.pl\" target=\"_blank\" rel=\"noopener\" rel=\"nofollow\" >Mateuszem Tadl\u0105<\/a> nad rozwi\u0105zaniem w postaci biblioteki do automatyzacji test\u00f3w UI dla C# i Selenium WebDriver.<\/p>\n\n\n\n<p>Na ten moment, do Waszej dyspozycji s\u0105 szablony do automatyzacji test\u00f3w w Javie, kt\u00f3re zosta\u0142y opublikowane przez zesp\u00f3\u0142 automatyk\u00f3w test\u00f3w. Zach\u0119camy do zapoznania si\u0119 r\u00f3wnie\u017c z nimi pod adresem: <a href=\"https:\/\/sii.pl\/blog\/darmowe-szablony-do-automatycznych-testow-aplikacji-web\/?category=testowanie&amp;tag=framework,java,selenium,test-automation,testing\" target=\"_blank\" rel=\"noopener\">Darmowe szablony do automatycznych test\u00f3w aplikacji Web<\/a>.<\/p>\n\n\n\n<p>Wiele os\u00f3b, zaczynaj\u0105c swoj\u0105 przygod\u0119 z automatyzacj\u0105 test\u00f3w UI, zastanawia si\u0119, czy warto tworzy\u0107 w\u0142asn\u0105 bibliotek\u0119 do test\u00f3w automatycznych, czy mo\u017ce skorzysta\u0107 ju\u017c z dost\u0119pnego, gotowego rozwi\u0105zania. Istnieje wiele ciekawych bibliotek, dotycz\u0105cych takich technologii jak Java czy JS, kt\u00f3re u\u0142atwiaj\u0105 rozw\u00f3j test\u00f3w automatycznych. Dla C# wyb\u00f3r nie jest tak oczywisty. Wyst\u0119puje znacznie mniej stale utrzymywanych rozwi\u0105za\u0144. Jest to pow\u00f3d, dla kt\u00f3rego zdecydowali\u015bmy si\u0119 na stworzenie \u0142atwego do wdro\u017cenia rozwi\u0105zania.<\/p>\n\n\n\n<p>Przygotowane rozwi\u0105zanie znacznie u\u0142atwia prac\u0119 z automatyzacj\u0105 test\u00f3w akceptacyjnych UI dla aplikacji webowych. Zawarte s\u0105 w nim najcz\u0119\u015bciej u\u017cywane i potrzebne klasy wspieraj\u0105ce sprawne pisanie test\u00f3w automatycznych. Poza samym szablonem, kt\u00f3ry zostawiamy do Waszej dyspozycji, przygotowali\u015bmy dla Was kilka przyk\u0142ad\u00f3w, implementuj\u0105cych u\u017cycie naszej biblioteki. Wystarczy pobra\u0107 kod z repozytorium GITa i zapozna\u0107 si\u0119 z instrukcj\u0105 w pliku w readme.md.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Co zawiera nasze rozwi\u0105zanie?<\/h2>\n\n\n\n<p>Nasze rozwi\u0105zanie to kilka element\u00f3w:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Wsparcie dla Allure Report<\/strong> \u2013 Allure report jest popularnym frameworkiem do tworzenia raport\u00f3w z test\u00f3w automatycznych. Jest to narz\u0119dzie open source\u2019owe, pozwalaj\u0105ce na tworzenie dynamicznych raport\u00f3w z test\u00f3w, w postaci strony.<\/li>\n\n\n\n<li><strong>Dynamiczne czekanie na elementy<\/strong> \u2013 umo\u017cliwia rozwi\u0105zanie problem\u00f3w synchronizacji Selenium WebDriver z wolno \u0142aduj\u0105cym si\u0119 interfejsem u\u017cytkownika.<\/li>\n\n\n\n<li><strong>Page Object Pattern<\/strong> \u2013 popularny wzorzec projektowy, kt\u00f3ry zosta\u0142 u\u017cyty do podzia\u0142u struktury kodu w naszych przyk\u0142adach.<\/li>\n\n\n\n<li><strong>Generatory danych \u2013 <\/strong>przy wykorzystaniu biblioteki<strong> \u2018Bogus\u2019 <\/strong>zaimplementowali\u015bmy prosty generator, dostarczaj\u0105cy losowe dane u\u017cytkownik\u00f3w.<\/li>\n\n\n\n<li><strong>Importer konfiguracji \u2013 <\/strong>element odpowiadaj\u0105cy za pobieranie konfiguracji dla test\u00f3w. Umo\u017cliwia ono przy u\u017cyciu prostej parametryzacji pliku JSON na konfiguracje zmiennych, wykorzystywanych w testach.<\/li>\n\n\n\n<li><strong>Wsparcie przegl\u0105darek &#8211; <\/strong>jest kluczowym elementem automatyzacji r\u00f3\u017cnych przegl\u0105darek. Stworzyli\u015bmy fabryk\u0119, kt\u00f3ra dostarcza drivery wraz z potrzebnymi opcjami dla najpopularniejszych przegl\u0105darek, takich jak Chrome, Firefox, Internet Explorer oraz Edge.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Dlaczego warto skorzysta\u0107?<\/h2>\n\n\n\n<p>Szablon zawiera wiele przydatnych klas, u\u0142atwiaj\u0105cych korzystanie z Selenium WebDriver. Mog\u0105 by\u0107 to podwaliny dla rozwi\u0105zania, z kt\u00f3rego b\u0119dziecie korzysta\u0107 w codziennej pracy. Zach\u0119camy r\u00f3wnie\u017c do dodawania swoich pomys\u0142\u00f3w, dotycz\u0105cych nowych funkcji, jak i r\u00f3wnie\u017c dodawania swoich pull request\u00f3w, kt\u00f3re pozwol\u0105 nam na wsp\u00f3lne rozwijanie tej biblioteki.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Jakie mamy plany na przysz\u0142o\u015b\u0107?<\/h2>\n\n\n\n<p>W przysz\u0142o\u015bci planujemy dalszy rozw\u00f3j biblioteki, wzbogacon\u0105 o wi\u0119ksz\u0105 liczb\u0119 przyk\u0142ad\u00f3w i przyk\u0142adnych funkcji. Chcemy r\u00f3wnie\u017c stworzy\u0107 dok\u0142adniejsz\u0105 dokumentacj\u0119 oraz przygotowa\u0107 paczk\u0119 Nugeta.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Kod dost\u0119pny jest na GitHubie:<\/h2>\n\n\n\n<p><a href=\"https:\/\/github.com\/sii-poland\/csharp_page_object_pattern\" rel=\"nofollow\" >https:\/\/github.com\/sii-poland\/csharp_page_object_pattern<\/a><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><strong>Kontakt do autor\u00f3w:<\/strong><\/p>\n\n\n\n<p>Mateusz Tadla &#8211; <a href=\"mailto:mtadla@sii.pl\" rel=\"nofollow\" >mtadla@sii.pl<\/a><\/p>\n\n\n\n<p>Micha\u0142 \u015al\u0119zak &#8211; <a href=\"mailto:mslezak@sii.pl\" rel=\"nofollow\" >mslezak@sii.pl<\/a><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>Chcesz lepiej zrozumie\u0107 aplikacje i systemy, kt\u00f3re testujesz? Do\u0142\u0105cz do ModernTester, poznaj najpotrzebniejsze narz\u0119dzia, frameworki oraz j\u0119zyki programowania i \u0107wicz na specjalnie przygotowanych \u015brodowiskach testowych: <a href=\"https:\/\/moderntester.sii.pl\/\" target=\"_blank\" rel=\"noopener\" rel=\"nofollow\" >Platforma e-learningowa ModernTester<\/a><\/p>\n\n\n<div class=\"kk-star-ratings kksr-auto kksr-align-left kksr-valign-bottom\"\n    data-payload='{&quot;align&quot;:&quot;left&quot;,&quot;id&quot;:&quot;9071&quot;,&quot;slug&quot;:&quot;default&quot;,&quot;valign&quot;:&quot;bottom&quot;,&quot;ignore&quot;:&quot;&quot;,&quot;reference&quot;:&quot;auto&quot;,&quot;class&quot;:&quot;&quot;,&quot;count&quot;:&quot;5&quot;,&quot;legendonly&quot;:&quot;&quot;,&quot;readonly&quot;:&quot;&quot;,&quot;score&quot;:&quot;4.8&quot;,&quot;starsonly&quot;:&quot;&quot;,&quot;best&quot;:&quot;5&quot;,&quot;gap&quot;:&quot;11&quot;,&quot;greet&quot;:&quot;&quot;,&quot;legend&quot;:&quot;4.8\\\/5 ( votes: 5)&quot;,&quot;size&quot;:&quot;18&quot;,&quot;title&quot;:&quot;Biblioteka do test\u00f3w automatycznych UI aplikacji Web w C#&quot;,&quot;width&quot;:&quot;133.7&quot;,&quot;_legend&quot;:&quot;{score}\\\/{best} ( {votes}: {count})&quot;,&quot;font_factor&quot;:&quot;1.25&quot;}'>\n            \n<div class=\"kksr-stars\">\n    \n<div class=\"kksr-stars-inactive\">\n            <div class=\"kksr-star\" data-star=\"1\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"2\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"3\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"4\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"5\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n    <\/div>\n    \n<div class=\"kksr-stars-active\" style=\"width: 133.7px;\">\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n                \n\n<div class=\"kksr-legend\" style=\"font-size: 14.4px;\">\n            4.8\/5 ( votes: 5)    <\/div>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p>Od pewnego czasu pracowali\u015bmy z Mateuszem Tadl\u0105 nad rozwi\u0105zaniem w postaci biblioteki do automatyzacji test\u00f3w UI dla C# i Selenium &hellip; <a class=\"continued-btn\" href=\"https:\/\/sii.pl\/blog\/biblioteka-do-testow-automatycznych-ui-aplikacji-web-w-c\/\">Continued<\/a><\/p>\n","protected":false},"author":215,"featured_media":9287,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_editorskit_title_hidden":false,"_editorskit_reading_time":2,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","inline_featured_image":false,"footnotes":""},"categories":[1317],"tags":[129,362,146,932],"class_list":["post-9071","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-testowanie","tag-c","tag-biblioteka","tag-testing","tag-testy-automatyczne"],"acf":[],"aioseo_notices":[],"republish_history":[],"featured_media_url":"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2020\/04\/testing-Biblioteka-do-test\u00f3w-automatycznych-UI-aplikacji-Web-w-C.jpg","category_names":["Testowanie"],"_links":{"self":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/9071"}],"collection":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/users\/215"}],"replies":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/comments?post=9071"}],"version-history":[{"count":2,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/9071\/revisions"}],"predecessor-version":[{"id":25077,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/9071\/revisions\/25077"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/media\/9287"}],"wp:attachment":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/media?parent=9071"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/categories?post=9071"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/tags?post=9071"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}