Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Fungsi pustaka tersedia untuk skrip canary Python yang menggunakan Selenium
Bagian ini mencantumkan fungsi pustaka Selenium yang tersedia untuk skrip canary Python.
Topik
Kelas dan fungsi pustaka Python dan Selenium yang berlaku untuk semua canary
Fungsi perpustakaan CloudWatch Synthetics Selenium berikut untuk Python berguna untuk semua burung kenari.
SyntheticsConfiguration kelas
Anda dapat menggunakan SyntheticsConfiguration kelas untuk mengkonfigurasi perilaku fungsi perpustakaan Synthetics. Misalnya, Anda dapat menggunakan kelas ini untuk mengonfigurasi fungsi executeStep()
untuk tidak menangkap tangkapan layar.
Anda dapat mengatur konfigurasi CloudWatch Synthetics di tingkat global.
Definisi fungsi:
set_config(options)
from aws_synthetics.common import synthetics_configuration
adalah sebuah objek, yang merupakan kumpulan opsi yang dapat dikonfigurasi untuk canary Anda. Bagian berikut menjelaskan bidang-bidang yang memungkinkan dalam options
.options
screenshot_on_step_start
(boolean)— Apakah mengambil tangkapan layar sebelum memulai langkah.screenshot_on_step_success
(boolean)— Apakah mengambil tangkapan layar setelah menyelesaikan langkah yang berhasil.screenshot_on_step_failure
(boolean)— Apakah mengambil tangkapan layar setelah langkah gagal.
with_screenshot_on_step_start(screenshot_on_step_start)
Menerima argumen Boolean, yang menunjukkan apakah akan mengambil tangkapan layar sebelum memulai sebuah langkah.
with_screenshot_on_step_success(screenshot_on_step_success)
Menerima argumen Boolean, yang menunjukkan apakah akan mengambil tangkapan layar setelah menyelesaikan langkah dengan sukses.
with_screenshot_on_step_failure(screenshot_on_step_failure)
Menerima argumen Boolean, yang menunjukkan apakah akan mengambil tangkapan layar setelah langkah gagal.
get_screenshot_on_step_start()
Mengembalikan apakah mengambil tangkapan layar sebelum memulai langkah.
get_screenshot_on_step_success()
Mengembalikan apakah mengambil tangkapan layar setelah menyelesaikan sebuah langkah dengan sukses.
get_screenshot_on_step_failure()
Mengembalikan apakah mengambil tangkapan layar setelah langkah gagal.
disable_step_screenshots()
Menonaktifkan semua pilihan tangkapan layar (get_screenshot_on_step_start, get_screenshot_on_step_success, dan get_screenshot_on_step_failure)
enable_step_screenshots()
Mengaktifkan semua pilihan tangkapan layar (get_screenshot_on_step_start, get_screenshot_on_step_success, dan get_screenshot_on_step_failure). Secara bawaan, semua metode ini diaktifkan.
setConfig (opsi) mengenai metrik CloudWatch
Untuk canary yang menggunakan syn-python-selenium-1.1
atau yang lebih baru, (options) untuk setConfig dapat mencakup parameter Boolean berikut yang menentukan metrik mana yang diterbitkan oleh canary. Bawaan untuk masing-masing opsi ini adalah true
. Pilihan yang dimulai dengan aggregated
menentukan apakah metrik dipancarkan tanpa dimensi CanaryName
. Anda dapat menggunakan metrik ini untuk melihat hasil gabungan untuk semua canary Anda. Pilihan lain menentukan apakah metrik dipancarkan dengan dimensi CanaryName
. Anda dapat menggunakan metrik ini untuk melihat hasil untuk setiap canary individu.
Untuk daftar CloudWatch metrik yang dipancarkan oleh burung kenari, lihat. CloudWatch metrik yang diterbitkan oleh kenari
failed_canary_metric
(boolean)— Apakah akan memancarkan metrikFailed
(dengan dimensiCanaryName
) untuk canary ini. Default-nya adalahtrue
.failed_requests_metric
(boolean)— Apakah akan memancarkan metrikFailed requests
(dengan dimensiCanaryName
) untuk canary ini. Default-nya adalahtrue
.2xx_metric
(boolean)— Apakah akan memancarkan metrik2xx
(dengan dimensiCanaryName
) untuk canary ini. Default-nya adalahtrue
.4xx_metric
(boolean)— Apakah akan memancarkan metrik4xx
(dengan dimensiCanaryName
) untuk canary ini. Default-nya adalahtrue
.5xx_metric
(boolean)— Apakah akan memancarkan metrik5xx
(dengan dimensiCanaryName
) untuk canary ini. Default-nya adalahtrue
.step_duration_metric
(boolean)— Apakah akan memancarkan metrikStep duration
(dengan dimensiCanaryName
StepName
) untuk canary ini. Default-nya adalahtrue
.step_success_metric
(boolean)— Apakah akan memancarkan metrikStep success
(dengan dimensiCanaryName
StepName
) untuk canary ini. Default-nya adalahtrue
.aggregated_failed_canary_metric
(boolean)— Apakah akan memancarkan metrikFailed
(tanpa dimensiCanaryName
) untuk canary ini. Bawaannya adalahtrue
.aggregated_failed_requests_metric
(boolean)— Apakah akan memancarkan metrikFailed Requests
(tanpa dimensiCanaryName
) untuk canary ini. Bawaannya adalahtrue
.aggregated_2xx_metric
(boolean)— Apakah akan memancarkan metrik2xx
(tanpa dimensiCanaryName
) untuk canary ini. Bawaannya adalahtrue
.aggregated_4xx_metric
(boolean)— Apakah akan memancarkan metrik4xx
(tanpa dimensiCanaryName
) untuk canary ini. Bawaannya adalahtrue
.aggregated_5xx_metric
(boolean)— Apakah akan memancarkan metrik5xx
(tanpa dimensiCanaryName
) untuk canary ini. Bawaannya adalahtrue
.
with_2xx_metric(2xx_metric)
Menerima argumen Boolean, yang menentukan apakah akan memancarkan metrik 2xx
dengan dimensi CanaryName
untuk canary ini.
with_4xx_metric(4xx_metric)
Menerima argumen Boolean, yang menentukan apakah akan memancarkan metrik 4xx
dengan dimensi CanaryName
untuk canary ini.
with_5xx_metric(5xx_metric)
Menerima argumen Boolean, yang menentukan apakah akan memancarkan metrik 5xx
dengan dimensi CanaryName
untuk canary ini.
withAggregated2xxMetric(aggregated2xxMetric)
Menerima argumen Boolean, yang menentukan apakah akan memancarkan metrik 2xx
tanpa dimensi untuk canary ini.
withAggregated4xxMetric(aggregated4xxMetric)
Menerima argumen Boolean, yang menentukan apakah akan memancarkan metrik 4xx
tanpa dimensi untuk canary ini.
with_aggregated_5xx_metric(aggregated_5xx_metric)
Menerima argumen Boolean, yang menentukan apakah akan memancarkan metrik 5xx
tanpa dimensi untuk canary ini.
with_aggregated_failed_canary_metric(aggregated_failed_canary_metric)
Menerima argumen Boolean, yang menentukan apakah akan memancarkan metrik Failed
tanpa dimensi untuk canary ini.
with_aggregated_failed_requests_metric(aggregated_failed_requests_metric)
Menerima argumen Boolean, yang menentukan apakah akan memancarkan metrik Failed
requests
tanpa dimensi untuk canary ini.
with_failed_canary_metric(failed_canary_metric)
Menerima argumen Boolean, yang menentukan apakah akan memancarkan metrik Failed
dengan dimensi CanaryName
untuk canary ini.
with_failed_requests_metric(failed_requests_metric)
Menerima argumen Boolean, yang menentukan apakah akan memancarkan metrik Failed
requests
dengan dimensi CanaryName
untuk canary ini.
with_step_duration_metric(step_duration_metric)
Menerima argumen Boolean, yang menentukan apakah akan memancarkan metrik Duration
dengan dimensi CanaryName
untuk canary ini.
with_step_success_metric(step_success_metric)
Menerima argumen Boolean, yang menentukan apakah akan memancarkan metrik StepSuccess
dengan dimensi CanaryName
untuk canary ini.
Metode untuk mengaktifkan atau menonaktifkan metrik
disable_aggregated_request_metrics()
Menonaktifkan canary dari memancarkan semua metrik permintaan yang dipancarkan tanpa dimensi CanaryName
.
disable_request_metrics()
Menonaktifkan semua metrik permintaan, termasuk metrik per canary dan metrik yang dikumpulkan di semua canary.
disable_step_metrics()
Menonaktifkan semua metrik langkah, termasuk metrik langkah sukses dan metrik durasi langkah.
enable_aggregated_request_metrics()
Mengaktifkan canary untuk memancarkan semua metrik permintaan yang dipancarkan tanpa dimensi CanaryName
.
enable_request_metrics()
Mengaktifkan semua metrik permintaan, termasuk metrik per canary dan metrik yang dikumpulkan di semua canary.
enable_step_metrics()
Mengaktifkan semua metrik langkah, termasuk metrik keberhasilan langkah dan metrik durasi langkah.
Penggunaan di canary UI
Pertama, impor dependensi synthetics dan ambil konfigurasinya. Lalu, atur konfigurasi untuk setiap pilihan dengan memanggil metode setConfig menggunakan salah satu pilihan berikut.
from aws_synthetics.common import synthetics_configuration synthetics_configuration.set_config( { "screenshot_on_step_start": False, "screenshot_on_step_success": False, "screenshot_on_step_failure": True } ) or
Atau
synthetics_configuration.with_screenshot_on_step_start(False).with_screenshot_on_step_success(False).with_screenshot_on_step_failure(True)
Untuk menonaktifkan semua tangkapan layar, gunakan fungsi disableStepScreenshots () seperti pada contoh ini.
synthetics_configuration.disable_step_screenshots()
Anda dapat mengaktifkan dan menonaktifkan tangkapan layar kapan saja di kode tersebut. Misalnya, untuk menonaktifkan tangkapan layar hanya untuk satu langkah, nonaktifkan sebelum menjalankan langkah tersebut dan kemudian aktifkan setelah langkah.
set_config(options) untuk canary UI
Dimulai dengan syn-python-selenium-1.1
, untuk canary UI, set_config
dapat mencakup parameter Boolean berikut:
continue_on_step_failure
(boolean)— Apakah akan melanjutkan menjalankan skrip canary setelah langkah gagal (ini mengacu pada fungsi executeStep). Jika ada langkah yang gagal, proses canary akan tetap ditandai sebagai gagal. Bawaannya adalahfalse
.
SyntheticsLogger kelas
synthetics_logger
menulis log keluar ke konsol dan ke file log lokal pada tingkat log yang sama. File log ini ditulis ke kedua lokasi hanya jika tingkat log berada pada atau di bawah tingkat log yang diinginkan dari fungsi log yang dipanggil tersebut.
Pernyataan pembuatan log di file log lokal diawali dengan "DEBUG: ", "INFO: ", dan seterusnya untuk mencocokkan tingkat log dari fungsi yang dipanggil tersebut.
Menggunakan synthetics_logger
tidak diperlukan untuk membuat file log yang diunggah ke lokasi hasil Amazon S3 Anda. Sebagai penggantinya, Anda dapat membuat file log lain di /tmp
folder. File apa pun yang dibuat di bawah folder /tmp
diunggah ke lokasi hasil dalam bucket S3 sebagai artefak.
Untuk menggunakan synthetics_logger
:
from aws_synthetics.common import synthetics_logger
Definisi fungsi yang berguna:
Dapatkan tingkat log:
log_level = synthetics_logger.get_level()
Atur tingkat log:
synthetics_logger.set_level()
Buat log sebuah pesan dengan tingkat tertentu. Tingkat dapat DEBUG
, INFO
, WARN
, atau ERROR
, seperti dalam contoh sintaks berikut:
synthetics_logger.debug(message, *args, **kwargs)
synthetics_logger.info(message, *args, **kwargs)
synthetics_logger.log(message, *args, **kwargs)
synthetics_logger.warn(message, *args, **kwargs)
synthetics_logger.error(message, *args, **kwargs)
Untuk informasi tentang parameter debug, silakan lihat dokumentasi Python standar di logging.debug
Dalam fungsi pembuatan log ini, message
adalah string format pesan. args
adalah argumen yang digabung menjadi msg
menggunakan operator pemformatan string.
Ada tiga argumen kata kunci di kwargs
:
exc_info
– Jika tidak dievaluasi sebagai false, tambahkan informasi pengecualian ke pesan pembuatan log.stack_info
– default ke false. Jika true, tambahkan informasi tumpukan ke pesan pembuatan log, termasuk panggilan pembuatan log yang sebenarnya.extra
– Argumen kata kunci opsional ketiga, yang dapat Anda gunakan untuk meneruskan kamus yang digunakan untuk mengisi__dict__
dariLogRecord
yang dibuat untuk peristiwa pembuatan log dengan atribut yang ditentukan pengguna.
Contoh:
Buat log pesan dengan tingkat DEBUG
:
synthetics_logger.debug('Starting step - login.')
Buat log pesan dengan tingkat INFO
. logger.log
adalah sinonim untuk logger.info
:
synthetics_logger.info('Successfully completed step - login.')
atau
synthetics_logger.log('Successfully completed step - login.')
Buat log pesan dengan tingkat WARN
:
synthetics_logger.warn('Warning encountered trying to publish %s', 'CloudWatch Metric')
Buat log pesan dengan tingkat ERROR
:
synthetics_logger.error('Error encountered trying to publish %s', 'CloudWatch Metric')
Buat log pengecualian:
synthetics_logger.exception(message, *args, **kwargs)
Membuat log pesan dengan tingkat ERROR
. Informasi pengecualian ditambahkan ke pesan pembuatan log. Anda harus memanggil fungsi ini hanya dari handler pengecualian.
Untuk informasi tentang parameter pengecualian, silakan lihat dokumentasi Python standar di logging.exception
message
adalah string format pesan. args
adalah argumen, yang digabungkan menjadi msg
menggunakan operator pemformatan string.
Ada tiga argumen kata kunci di kwargs
:
exc_info
– Jika tidak dievaluasi sebagai false, tambahkan informasi pengecualian ke pesan pembuatan log.stack_info
– default ke false. Jika true, tambahkan informasi tumpukan ke pesan pembuatan log, termasuk panggilan pembuatan log yang sebenarnya.extra
– Argumen kata kunci opsional ketiga, yang dapat Anda gunakan untuk meneruskan kamus yang digunakan untuk mengisi__dict__
dariLogRecord
yang dibuat untuk peristiwa pembuatan log dengan atribut yang ditentukan pengguna.
Contoh:
synthetics_logger.exception('Error encountered trying to publish %s', 'CloudWatch Metric')
Kelas dan fungsi pustaka Python dan Selenium yang hanya berlaku untuk canary UI
Fungsi perpustakaan CloudWatch Synthetics Selenium berikut untuk Python hanya berguna untuk kenari UI.
SyntheticsBrowser kelas
Ketika Anda membuat instans browser dengan memanggil synthetics_webdriver.Chrome()
, instans browser yang dikembalikan bertipe SyntheticsBrowser
. SyntheticsBrowser
Kelas mengontrol ChromeDriver, dan memungkinkan skrip kenari untuk menggerakkan browser, memungkinkan Selenium WebDriver bekerja dengan Synthetics.
Selain metode Selenium standar, itu juga menyediakan metode berikut.
set_viewport_size(width, height)
Mengatur viewport browser. Contoh:
browser.set_viewport_size(1920, 1080)
save_screenshot(filename, suffix)
Menyimpan tangkapan layar ke direktori /tmp
. Tangkapan layar diunggah dari sana ke folder artefak canary di dalam bucket S3.
filename adalah nama file untuk tangkapan layar, dan suffix adalah string opsional untuk digunakan guna menamai tangkapan layar.
Contoh:
browser.save_screenshot('loaded.png', 'page1')
SyntheticsWebDriver kelas
Untuk menggunakan kelas ini, gunakan yang berikut ini dalam skrip Anda:
from aws_synthetics.selenium import synthetics_webdriver
Topik
add_execution_error(errorMessage, ex);
errorMessage
menjelaskan kesalahan dan ex
adalah pengecualian yang ditemui
Anda dapat menggunakan add_execution_error
untuk mengatur kesalahan eksekusi bagi canary Anda. Itu menggagalkan canary tanpa mengganggu eksekusi skrip. Itu juga tidak memengaruhi metrik successPercent
Anda.
Anda harus melacak kesalahan sebagai kesalahan eksekusi hanya jika kesalahan itu tidak penting untuk menunjukkan keberhasilan atau kegagalan skrip canary Anda.
Contoh penggunaan add_execution_error
adalah sebagai berikut. Anda memantau ketersediaan titik akhir Anda dan mengambil tangkapan layar setelah halaman dimuat. Karena kegagalan mengambil tangkapan layar tidak menentukan ketersediaan titik akhir, Anda dapat menangkap kesalahan apa pun yang dihadapi saat mengambil tangkapan layar dan menambahkannya sebagai kesalahan eksekusi. Metrik ketersediaan Anda masih akan menunjukkan bahwa titik akhir telah aktif dan berjalan, namun status canary Anda akan ditandai sebagai gagal. Blok kode sampel berikut menangkap kesalahan tersebut dan menambahkannya sebagai kesalahan eksekusi.
try: browser.save_screenshot("loaded.png") except Exception as ex: self.add_execution_error("Unable to take screenshot", ex)
add_user_agent(user_agent_str)
Menambahkan nilai dari user_agent_str
ke header agen pengguna browser. Anda harus menetapkan user_agent_str
sebelum membuat instans browser.
Contoh:
synthetics_webdriver.add_user_agent('MyApp-1.0')
execute_step(step_name, function_to_execute)
Memproses satu fungsi. Ini juga melakukan hal berikut:
Membuat log bahwa langkah tersebut dimulai.
Mengambil tangkapan layar yang bernama
<stepName>-starting
.Memulai pengatur waktu.
Menjalankan fungsi yang disediakan.
Jika fungsi kembali secara normal, ini dihitung sebagai lulus. Jika fungsi tersebut throw, maka ini dihitung sebagai gagal.
Mengakhiri pengatur waktu.
Mencatat log jika langkah berhasil atau gagal
Mengambil tangkapan layar yang bernama
<stepName>-succeeded
atau<stepName>-failed
.Memancarkan metrik
stepName
SuccessPercent
, 100 untuk lulus atau 0 untuk gagal.Memancarkan metrik
stepName
Duration
, dengan nilai didasarkan pada mulai melangkah dan waktu selesai.Akhirnya, mengembalikan apa yang dikembalikan oleh
functionToExecute
atau melempar kembali apa yang dilempar olehfunctionToExecute
.
Contoh:
from selenium.webdriver.common.by import By def custom_actions(): #verify contains browser.find_element(By.XPATH, "//*[@id=\"id_1\"][contains(text(),'login')]") #click a button browser.find_element(By.XPATH, '//*[@id="submit"]/a').click() await synthetics_webdriver.execute_step("verify_click", custom_actions)
get_http_response (url)
Membuat permintaan HTTP ke URL yang disediakan dan mengembalikan kode respons permintaan HTTP. Jika pengecualian terjadi selama permintaan HTTP, string dengan nilai “kesalahan” dikembalikan sebagai gantinya.
Contoh:
response_code = syn_webdriver.get_http_response(url) if not response_code or response_code == "error" or response_code < 200 or response_code > 299: raise Exception("Failed to load page!")
Chrome()
Meluncurkan sebuah instans dari browser Chromium dan mengembalikan instans yang dibuat dari browser.
Contoh:
browser = synthetics_webdriver.Chrome() browser.get("https://example.com/)
Untuk meluncurkan browser dalam mode penyamaran, gunakan yang berikut ini:
add_argument('——incognito')
Untuk menambahkan pengaturan proxy, gunakan yang berikut ini:
add_argument('--proxy-server=%s' %
PROXY
)
Contoh:
from selenium.webdriver.chrome.options import Options chrome_options = Options() chrome_options.add_argument("——incognito") browser = syn_webdriver.Chrome(chrome_options=chrome_options)