Selenium IDE komut dosyaları ile tarayıcı testi

Web uygulamalarınızla kullanıcı etkileşimlerinin benzetimini yapmak için bir Selenium IDE komut dosyası (yan komut dosyası da denir) kullanın.

Selenium IDE komut dosyası sınaması, bir tip YönOrtamıSentetik tarayıcı komut dosyası sınamasıdır.

Recording a Selenium IDE script (Selenium IDE komut dosyası kaydetme) bölümünde açıklandığı gibi basit bir Selenium IDE komut dosyasıyla başlamanız önerilir.

Daha sonra, Selenium IDE komut dosyalarında test yeteneklerini genişletme kısmında açıklandığı gibi, YönOrtamıSentetik tarafından sağlanan gelişmiş yetenekleri kullanabilirsiniz.

Selenium IDE komut dosyasının kaydedilmesi

  1. Firefox ya da Chrome tarayıcısında Selenium IDE Firefox eklentisini ya da Chrome uzantısını karşıdan yükleyin ve kurun. Daha sonra tarayıcıyı yeniden başlatın.

  2. Menü çubuğundan Selenium IDE ' yi açın. Record a new test in a new project bağlantısını tıklatın ve yönergeleri izleyerek bir komut dosyası kaydedin.

    Selenium IDE kaydedilirken, komut dosyasındaki her kullanıcı işlemi için bir komut oluşturur.

    Selenium

  3. Kaydettikten sonra komut dosyasını bir .side dosyasına kaydedin.

    Selenium

  4. assert title gibi komutlar ekleyebilir ya da komut dosyanızı çalıştır düğmesiyle sınayabilirsiniz.

    Selenium

Daha fazla bilgi için bkz. Selenium IDE Başlarken.

Kaydedilen komut dosyasını test etmek ya da hata ayıklamak için Selenium IDE Firefox eklentisini ya da Chrome uzantısını da kullanabilirsiniz.

Not:

  • Selenium IDE ' de zamanaşımı değerlerini özelleştirebilirsiniz. Zamanaşımı değeri sağlanmazsa, varsayılan değerler kullanılır:

    • Varsayılan zamanaşımı değeri, "command": "waitForElementPresent"gibi bir sınama komutuiçin 15 saniyedir.
    • Varsayılan zamanaşımı değeri, bir test takımıiçin 300 saniyedir.
  • Instana, yalnızca diziselleştirilmiş testleri destekler ve bu nedenle Selenium IDE komut dosyalarındaki aşağıdaki özelliklerin üzerine YönOrtamıcı tarayıcı kayıttan yürütme motoru yazılır:

    • "persistSession": false
    • "paralel": false

Örnek

Aşağıdaki örnekte, Selenium IDE komut dosyası, bir arama motorunda YönOrtamıana anahtar sözcüklerini aramak için kullanılır:

{
"id": "9ed7eb47-bf16-42aa-a486-0c7d99182726",
"version": "2.0",
"name": "Search-Instana",
"url": "https://www.google.com",
"tests": [{
    "id": "d968da10-6c9f-467f-ba5c-dbe5135dab17",
    "name": "search instana",
    "commands": [{
    "id": "c6ccc11f-aab7-49b4-af71-6315647370da",
    "comment": "",
    "command": "open",
    "target": "/",
    "targets": [],
    "value": ""
    }, {
    "id": "99075bf4-411e-4351-804d-e78f5d83824e",
    "comment": "",
    "command": "type",
    "target": "name=q",
    "targets": [
        ["name=q", "name"],
        ["css=.gLFyf", "css:finder"],
        ["xpath=//input[@name='q']", "xpath:attributes"],
        ["xpath=//input", "xpath:position"]
    ],
    "value": "instana"
    }, {
    "id": "9f1b06f4-1cfb-4381-9566-2399742a46c2",
    "comment": "",
    "command": "sendKeys",
    "target": "name=q",
    "targets": [
        ["name=q", "name"],
        ["css=.gLFyf", "css:finder"],
        ["xpath=//input[@name='q']", "xpath:attributes"],
        ["xpath=//input", "xpath:position"]
    ],
    "value": "${KEY_ENTER}"
    }, {
    "id": "d13e50bd-f698-4a04-9420-701a21dcde8d",
    "comment": "",
    "command": "waitForElementVisible",
    "target": "id=result-stats",
    "targets": [
        ["id=result-stats", "id"],
        ["css=#result-stats", "css:finder"],
        ["xpath=//div[@id='result-stats']", "xpath:attributes"],
        ["xpath=//div[@id='slim_appbar']/div/div", "xpath:idRelative"],
        ["xpath=//div[7]/div/div/div/div/div", "xpath:position"]
    ],
    "value": "5000"
    }]
}],
"suites": [{
    "id": "76395644-9101-473c-ad42-bda5c37e8de2",
    "name": "Search Instana",
    "persistSession": false,
    "parallel": false,
    "timeout": 300,
    "tests": ["d968da10-6c9f-467f-ba5c-dbe5135dab17"]
}],
"urls": ["https://www.google.com/"],
"plugins": []
}

Selenium IDE komut dosyalarında test yeteneklerini genişletme

Instana Synthetic tarayıcı testi, Selenium IDE ' den daha fazla yetenek sağlar:

  • Instana Syntetik, HTTP Arşiv biçimi (HAR) dosyalarını, ekran görüntülerini, kayıtları, tarayıcı günlüklerini ve konsol günlüklerini içeren zengin test sonuçları sağlar.

  • Instana Synthetic, daha gelişmiş tarayıcı testi API ' leri ve genel değişkenler sağlar.

Selenium IDE komut dosyalarınızı, YönOrtamıSentetik tarafından sağlanan gelişmiş tarayıcı testi API ' leri ve genel değişkenleriyle değiştirmek istiyorsanız aşağıdaki örneklere bakın:

  • Testinizde genel ortam değişkenlerini kullanın.

    Aşağıdaki örnekteki gibi genel değişkenlere erişmek için $synthetic.xxxx, $secure.xxxya da $env.xxx kullanabilirsiniz.

    echo komutu gibi şablon dizgilerindeki değişkenleri kullanmak için standart Node.js sözdizimini kullanın ve değişkenleri ${}içine koyun.

    {
        "id": "da853ea2-7253-4938-ad2d-9272f4c6d3e2",
        "comment": "",
        "command": "echo",
        "target": "tag1's value is ${$synthetic.tag1}",
        "targets": [],
        "value": ""
    }, {
        "id": "9540edee-f041-42b1-aeb3-e2142a7fcbd7",
        "comment": "",
        "command": "assert",
        "target": "$synthetic.tag1",
        "targets": [],
        "value": "value1"
    }
    
  • Gelişmiş tarayıcı testi API ' lerini çağırmak için Selenium komutlarını runScript ve executeScript kullanın.

    Selenium komutlarını runScript ve executeScript , YönOrtamıAna Tarayıcı Sınaması 'nda önceden tanımlanmış tarayıcı sınama API ' lerini ve genel değişkenleri çağırmak için kullanabilirsiniz.

    executeScript ve runScript arasındaki fark, executeScript ' un döndürülen değerin bir değişkende saklanmasını desteklemektir. Daha sonra, assert ya da echo değişkenini ${xxx}ile kullanabilirsiniz. Döndürülen değeri saklamak için return anahtar sözcüğünü kullanın ve değer giriş alanında bir değişken adı belirtin.

    {
        "id": "9cd35362-8d78-4bd2-a32b-f81d40362af2",
        "comment": "browser_script_api_authentication_executeScript",
        "command": "executeScript",
        "target": "return $browser.setAuthentication(\"user1\", \"pass1\")",
        "targets": [],
        "value": "authentication_result"
    },
    {
        "id": "1401608a-3892-4be0-9b4c-63c0fb0a1b87",
        "comment": "echo authentication result",
        "command": "echo",
        "target": "This is my authentication result: ${authentication_result}",
        "targets": [],
        "value": ""
    }
    
  • Bir ortam değişkeni tanımlayın ve bunu tarayıcı test API ' lerinde kullanın.

    {
        "id": "10d09a25-d101-43b0-84df-f22265b7cec6",
        "comment": "proxy_store_json",
        "command": "storeJson",
        "target": "{\"proxy\": \"<proxy_server>:8080\", \"noproxy\": \"localhost,google.com,192.168.1.0/24\"}",
        "targets": [],
        "value": "proxyConfig"
    },
    {
        "id": "237bd334-d963-4a73-b9bb-4c31f1dce051",
        "comment": "browser_script_api_proxy_runScript",
        "command": "runScript",
        "target": "await $browser.clearProxy(); await $browser.setProxy(${proxyConfig.proxy}, ${proxyConfig.noproxy});",
        "targets": [],
        "value": ""
    }
    
  • Bir yetkili sunucu ayarlamak için $network API 'sini kullanın.

    {
        "id": "a418460e-a0a9-4c68-bbd0-fb78d6495e92",
        "comment": "browser_script_api_$network",
        "command": "runScript",
        "target": "await $network.clearProxy(); await $network.setProxy(${proxyConfig.proxy}, ${proxyConfig.noproxy});",
        "targets": [],
        "value": ""
    }
    
  • Öznitelikleri özelleştirmek için $attributes API 'sini kullanın.

    {
        "id": "26438c58-868d-4d6d-9e6f-dbe9d8f373fd",
        "comment": "browser_script_api_$attributes",
        "command": "executeScript",
        "target": "$attributes.set(\"name\", \"user1\"); return $attributes.get(\"name\")",
        "targets": [],
        "value": "user_name"
    },
    {
        "id": "1d760093-15a2-44ed-ac41-00a08f67ed8b",
        "comment": "echo user insights result",
        "command": "echo",
        "target": "This is my user name: ${user_name}",
        "targets": [],
        "value": ""
    }
    

Örnek

Aşağıdaki örnekte Selenium komutları, YönOrtamıcı tarayıcı testi API ' lerini ve genel değişkenleri çağırır.

Not: < proxy_server> değişkenini gerçek yetkili sunucunuzla değiştirin.

{
"id": "04e7ae01-927d-4937-acbd-f35f5f8de715",
"version": "2.0",
"name": "search-engine",
"url": "https://www.google.com",
"tests": [{
    "id": "868fa683-e289-47bb-82de-c347c99d9ba8",
    "name": "search instana",
    "commands": [{
    "id": "10d09a25-d101-43b0-84df-f22265b7cec6",
    "comment": "proxy_store_json",
    "command": "storeJson",
    "target": "{\"proxy\": \"<proxy_server>:8080\", \"noproxy\": \"localhost,192.168.1.0/24\"}",
    "targets": [],
    "value": "proxyConfig"
    }, {
    "id": "a418460e-a0a9-4c68-bbd0-fb78d6495e92",
    "comment": "browser_script_api_$network",
    "command": "runScript",
    "target": "await $network.clearProxy(); await $network.setProxy(${proxyConfig.proxy}, ${proxyConfig.noproxy});",
    "targets": [],
    "value": ""
    },{
    "id": "71ac6b1c-fbeb-48d1-80d1-3960862fc577",
    "comment": "",
    "command": "open",
    "target": "/",
    "targets": [],
    "value": ""
    }, {
    "id": "99075bf4-411e-4351-804d-e78f5d83824e",
    "comment": "",
    "command": "type",
    "target": "name=q",
    "targets": [],
    "value": "instana"
    }, {
    "id": "9f1b06f4-1cfb-4381-9566-2399742a46c2",
    "comment": "",
    "command": "sendKeys",
    "target": "name=q",
    "targets": [],
    "value": "${KEY_ENTER}"
    }, {
    "id": "d13e50bd-f698-4a04-9420-701a21dcde8d",
    "comment": "",
    "command": "waitForElementVisible",
    "target": "id=result-stats",
    "targets": [],
    "value": "5000"
    },{
    "id": "46eb59c2-5fd6-4481-b3e8-eaaddab79a69",
    "comment": "",
    "command": "assertTitle",
    "target": "instana - Google Search",
    "targets": [],
    "value": ""
    }]
}],
"suites": [{
    "id": "a4b81281-f8cf-4870-b802-668af4ee5f04",
    "name": "Advanced APIs",
    "persistSession": false,
    "parallel": false,
    "timeout": 300,
    "tests": ["868fa683-e289-47bb-82de-c347c99d9ba8"]
}],
"urls": ["https://www.google.com/"],
"plugins": []
}