{"id":21693295,"url":"https://github.com/gokcesahinnn/web-test-automation-ruby-base-project","last_synced_at":"2026-04-28T12:32:49.505Z","repository":{"id":168536125,"uuid":"643981362","full_name":"gokcesahinnn/web-test-automation-ruby-base-project","owner":"gokcesahinnn","description":null,"archived":false,"fork":false,"pushed_at":"2024-04-26T07:11:25.000Z","size":26,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-25T13:24:56.239Z","etag":null,"topics":["allure-report","capybara","cucumber","parallel","ruby"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gokcesahinnn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-22T14:55:35.000Z","updated_at":"2024-04-26T07:11:28.000Z","dependencies_parsed_at":null,"dependency_job_id":"f423aa6f-7ce3-4721-9f1b-ebb42b5dccfe","html_url":"https://github.com/gokcesahinnn/web-test-automation-ruby-base-project","commit_stats":null,"previous_names":["gokcesahinnn/web-test-automation-ruby-base-project"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gokcesahinnn%2Fweb-test-automation-ruby-base-project","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gokcesahinnn%2Fweb-test-automation-ruby-base-project/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gokcesahinnn%2Fweb-test-automation-ruby-base-project/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gokcesahinnn%2Fweb-test-automation-ruby-base-project/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gokcesahinnn","download_url":"https://codeload.github.com/gokcesahinnn/web-test-automation-ruby-base-project/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244623522,"owners_count":20483166,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["allure-report","capybara","cucumber","parallel","ruby"],"created_at":"2024-11-25T18:19:19.993Z","updated_at":"2025-10-28T01:47:19.439Z","avatar_url":"https://github.com/gokcesahinnn.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# \u003ccustomer_name\u003eTest Otomasyon Projesi\n\nBu proje \u003ccustomer_name\u003e web uygulamasının test otomasyonunu içermektedir.\n\n# Tool stack\n\n* **Ruby** - Development language\n* **RubyMine IDE** - Development IDE\n* **Allure** Multi-language test report tool\n* **Cucumber** - Gherkin Syntax Framework\n* **Capybara** - Web-based APP Framework\n* **RSpec** - Assertion \u0026 Validation Framework\n* **Selenium** - Web APP Test Automation Tool\n\n# Kurulumlar\n\n* Kurulumlar için Confluence'ta #{customer_name} sayfasındaki adımlar takip edilmelidir.\n* Proje repository'i #{customer_name} linkinden clone alınabilir.\n* Gerekli kütüphanelerin yüklenilebilmesi için proje dizininde aşağıdaki komutlar çalıştırılır.\n  ```\n  gem install bundler\n  bundle install\n  ```\n\n# Testlerin Çalıştırılması\n\n1. IDE üzerinden yeşil RUN butonu ile senaryo ya da feature bazlı çalıştırılabilir.\n\n\n2. Terminalden ilgili proje dizininde senaryo ismi ile çalıştırma:\n\n   `cucumber --name \"Login and logout successfully\"`\n\n\n3. Terminalden ilgili proje dizininde scenario ya da feature tag'i ile çalıştırma:\n\n   `cucumber --tag @success_login`\n\n\n4. Farklı browser'lar ile çalıştırmak için(default value `chrome`):\n\n   `cucumber --tag @success_login browser=firefox`\n\n\n5. Headless mode'da çalıştırmak için(default value `false`):\n\n   `cucumber --tag @success_login headless=true`\n\n# Raporlama\n* Raporlama aracı olarak allure report kullanılmaktadır.\n\n\n* Allure report oluşturmak için allure pc'nizde kurulu olmalıdır.\n\n   * Mac kurulum\n   \n     `brew install allure`\n   \n   * Windows Kurulum\n\n     * Powershell açılır. Aşağıdaki komut çalıştırılır. Scoop kurulumu yapılır.\n    \n       `iwr -useb get.scoop.sh | iex`\n     \n     * Scoop başarılı kurulduktan sonra komut satırı açılır. Aşağıdaki komut çalıştırılır. Allure kurulumu yapılır.\n    \n       `scoop install allure`\n    \n\n* Allure report generate etmek için proje dizininde oluşan allure-results folder yolu verilerek aşağıdaki komut çalıştırılır.\n    \n  `allure serve output/allure-results `\n\n# Project Folder Structure\n\n```\n.\n├── Gemfile                         #Projenin kullanılacak kütüphanelerin yönetimi\n├── config                          #Projeye ait configürasyonlar\n│   └── base_config.rb\n├── context\n│   ├── cart_context.rb\n├── model                           #Enum yapıları ve gerekli modeller tanımlamaları\n│   └── product_category.rb\n├── features\n│   ├── pages                       #Page Object Model implementasyonu için kullanılacaktır\n│   ├── step_definitions            #Senaryolara ait step tanımlamalarının yapıldığı dizin\n│   ├── support                     #Hooks ve env tanımlamalarının yapıldığı dizin\n│   ├── tests                       #Gherkin Synxtaxı'ndaki senaryoların bulunduğu dizin\n├── utils                           #Utils class ve metodların yer aldığı dizin\n│   └── general_utils.rb\n└── README.md\n```\n\n# Naming Convention\n\nProje genelinde `snake_case` yazım şekli takip edilecektir.\n\nİsimlendirmeler yapılırken aşağıdaki durumlar takip edilecektir.\n\n```\nfolder name = my_folder\n\nruby file name = my_file.rb\n\nfeature file name = my_feature.rb\n\nclass name = MyClass\n\nmethod name = my_method\n\nvariable name = my_variable\n\nelement name = @my_element_id @my_element_css @my_element_xpath\n\nEnum = ALL_CAPITAL = 'value'\n\nGlobal variable = $MY_VAR\n\nConfig Constant = MY_CONSTANT\n\nFeature name = my_feature\n\ntag name = @my_tag \n```\nElementlerin locatorları tek tırnak ile tanımlanmalı, eğer iç içe tırnak kullanımı varsa dışta çift tırnak olacak şekilde tanımlanmalıdır.\n\n*Örnek:*\n\n@btn_edit_address_css = '.tvEditAddress'\n\n@btn_dropdown_choice_by_text_xpath = \"//android.widget.TextView[@text='%s']\"\n# Web Element Standartları\n\n| Prefix        | Örnek             | Locator      |\n| ------------- |-------------------|------------- |\n| btn           | btn_login_id      |  Button      |\n| chk           | chk_status_css    |  Checkbox    |\n| cbx           | cbx_english_xpath |  Combo box   |\n| lbl           | lbl_username_css  |  Label       |\n| drp           | drp_list_xpath    |  Drop down   |\n| slc           | slc_list_css      |  Selectbox   |\n| txt           | txt_email_css     |  Textbox     |\n| img           | img_logo_xpath    |  Image       |\n| rdx           | rdx_female_xpath  |  Radiobox    |\n\n# Page Method Standartları\n\n| Prefix | Action         | Description                |\n|--------|----------------|----------------------------|\n| click  | click_register | Click button or link       |\n| fill   | fill_email     | Type textbox               |\n| check  | check_gender   | Check a check box          |\n| select | select_year    | Select value from drop down |\n| verify | verify_menu    | Assertion                  |\n\n# Senaryo Yazımı Standartları\n\n* Senaryolar `feature` file içerisine yazılacaktır.\n* ``Given, When, Then, And`` Syntax i kullanılacaktır.\n* Feature file başlangıcında ``Feature`` keywordunden sonra ilgili feature ın isimlendirmesi yapılacaktır.\n* Bir sonraki satırda feature in açıklaması yazılacaktır.\n* Senaryolar ``Scenario`` keywordunden sonra yazılacaktır. Senaryo name unique olmalıdır.\n* Her senaryo taglenmelidir. İlgili tagler senaryonun üst kısmına koyulmalıdır. @regression, @smoke gibi.\n* Senaryo stepleri yazılırken aşağıdaki örnek senaryo takip edilecektir.\n\n```gherkin\nGiven ön koşul\nAnd ek koşul varsa\nWhen aksiyonun alındığı kısım \nAnd ek aksiyon varsa\nThen ilgili verifikasyonların yapıldığı yer\nAnd ek verifikasyonlar \n```\n\n**Scenario Örneği**\n\n```gherkin\nGiven homepage is opened\nAnd click on login button\nAnd fill the valid credentials\nWhen click on login button\nThen verify my account icon\nAnd title should changed to \"My Title\"\n```\n\n# Step Definition Formulü\n\n* action + object + location\n\n  `And click login button on homepage`\n\n\n* action + object + value + location\n\n  `And set email with \"m@f.com\" on homepage`\n\n\n* verification action + object + location\n\n  `Then verify the new address on my delivery addresses page`\n\n\n* verification action + object + value + location\n\n  `Then verify the new address title is \"Home\" on my delivery addresses page`\n\n# Tag Yönetimi\n\n```\n@wip = Developmentı henüz tamamlanmamış senaryo / feature\n@smoke = Smoke kapsamında çalışması beklenen senaryo / feature\n@excluded  = Uygulama üzerinde artık var olmayan ancak senaryosu geliştirilmiş senaryo / feature\n@bug_fix = Uygulama üzerinde var olan bir bugdan dolayı bug fix bekleyen senaryo / feature \n           Aşağıdaki örnek gibi bug_id tagı ile birlikte kullanılmalıdır.\n           Örnek Kullanım @bug_fix @bug_id_JIRA_ID \n@prod  = Prodda koşacak senaryolar\n@regression  = Regresyon sırasında koşması gereken caseler\n@feature_tag = Her bir feature dosyasına verilecek tag name. Örnek: @feature_login\n@scenario_tag = Her bir senaryoya verilecek ve uniq olması beklenen tag. Örnek: @success_login\n```\n\n# Commit ve PR structure\n\n```\n* Branch isimleri işin ticket idsi ile açılmalı. Örnek: QA-74\n* Mümkün olduğunca commitler anlaşılır açıklamalar ile commitlenmeli.\n* Commit atılırken mümkün olduğunca küçük parçalar halinde ilerlenmeli(Atomic). Böylelikle rollback daha kolay olacaktır.\n* PR QA ekibinden zorunlu review ırların review etmesinden sonra master a mergelenecektir.\n* Master'a mergelenmeden önce pipeline ilgili branch üzerinde çalıştırılacak ve herhangi bir problem olmadığı doğrulanacaktır.\n```\n\n# Project Feature Tags\n\nBu başlık altında feature tag'leri saklanmaktadır. Her yeni feature dosyası oluşturulup yeni bir feature tag'i\noluşturulduğunda mutlaka buraya açıklaması ile eklenmelidir.\n\n* feature_search =\u003e Search ile ilgili test senaryoları\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgokcesahinnn%2Fweb-test-automation-ruby-base-project","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgokcesahinnn%2Fweb-test-automation-ruby-base-project","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgokcesahinnn%2Fweb-test-automation-ruby-base-project/lists"}