Nonaktifkan keamanan web di Cypress hanya untuk satu pengujian

Setelah membaca dokumentasi Cypress tentang keamanan web dan kapan harus menonaktifkannya, saya memutuskan bahwa saya memang perlu melakukannya. Apakah ada cara untuk menonaktifkan ini hanya untuk satu rangkaian pengujian/pengujian tertentu? Saya menggunakan versi 3.4.1 dan konfigurasi ini disetel di cypress.json - oleh karena itu konfigurasi ini bersifat global untuk semua pengujian.

Apakah ada cara untuk menonaktifkan keamanan web hanya untuk satu pengujian? Terima kasih!


person DurkoMatko    schedule 22.09.2019    source sumber


Jawaban (2)


Jawaban asli:

Apakah ini Bekerja untukmu?

describe("test the config json", function () {
    it("use web security false here", function () {
      Cypress.config('chromeWebSecurity',false);
      cy.visit("https://www.google.com");
      console.log(Cypress.config('chromeWebSecurity'));
    });

    it("use web security true here", function () {
      Cypress.config('chromeWebSecurity',true);
      cy.visit("https://www.google.com");
      console.log(Cypress.config('chromeWebSecurity'));
    });
  });

Konfigurasi diubah seperti yang Anda lihat dari log konsol. masukkan deskripsi gambar di sini

Lihat dokumen di sini https://docs.cypress.io/guides/references/configuration.html#Cypress-config

Pembaruan:

Setelah saya melihat komentar DurkoMatKo, saya berhasil menemukan URL untuk menguji opsi 'chromeWebSecurity' ini. Itu tidak berjalan sesuai harapan. Saya pikir mengubah konfigurasi ini mungkin tidak berfungsi saat menjalankan browser yang sama karena ini lebih seperti fitur browser yang akan menentukan kapan memulai. Dalam hal ini yang terpikir oleh saya hanyalah menjalankan Cypress dengan konfigurasi berbeda.

Dokumen cypress di sini menunjukkan langkah-langkah yang jelas untuk melakukan hal ini. semoga ini membantu.

person Pigbrainflower    schedule 22.09.2019
comment
Wow! Akan mencobanya hari ini di malam hari dan memberi tahu Anda. terima kasih! - person DurkoMatko; 23.09.2019
comment
Terima kasih atas waktunya, tetapi sepertinya tidak berhasil :/ Saya masih mendapatkan kesalahan lintas asal. Jika saya menonaktifkannya menggunakan cypress.json, maka saya tidak mendapatkan error lagi. - person DurkoMatko; 23.09.2019
comment
Mohon maaf karena saya tidak memiliki url yang valid untuk diuji. Saya pikir kamu benar. Konfigurasi diubah tetapi tidak diterapkan pada pohon cemara yang sedang berjalan. Saya belum menemukan cara ideal untuk melakukannya. Saya memperbarui jawaban saya hanya untuk solusi. Tolong beri tahu saya juga jika Anda memiliki solusi yang lebih baik. Terima kasih. - person Pigbrainflower; 24.09.2019
comment
Terima kasih banyak atas bantuan Anda. Saya akan pergi ke arah yang Anda tunjuk (beberapa file konfigurasi). Apakah Anda setuju jika saya tidak menerima jawabannya karena kami tidak menemukan solusi untuk menonaktifkan keamanan web dengan cepat hanya untuk satu pengujian? Mungkin seseorang akan datang di masa depan dan setelah memungkinkan dan akan menjawabnya...Tidak yakin bagaimana aturan SO dalam skenario seperti itu - person DurkoMatko; 25.09.2019
comment
Dalam kasus saya, itu berhasil. tapi saya perlu mengatur file cypress.json dengan {"chromeWebSecurity": false} jadi dalam pengujian saya ubah pengaturannya menjadi true dengan Cypress.config('chromeWebSecurity',true); - person Jasp402; 08.06.2021
comment
@ Jasp402 bisakah Anda menjelaskannya, saya punya {"chromeWebSecurity": false} di cypress.json saya dan mencoba mengganti bendera dengan Cypress.config('chromeWebSecurity', true); di context atau it tanpa hasil. - person Édouard Lopez; 13.07.2021

Dalam kasus saya ini berfungsi sebagai berikut.
hal pertama yang harus dilakukan adalah menyetel chromeWebSecurity ke false

//cypress.json 
{
"chromeWebSecurity": false
}

Lalu yang saya lakukan adalah dengan a sebelum menetapkannya ke true dengan Cypress.config

    //cypress/integration/testing.spec.js
    context('DEMO-01', () => {
    beforeEach(function () {
        Cypress.config('chromeWebSecurity', true);
    });
    describe('CP001 - start dasboard', () => {
        it('P01: open dashboard', () => {
            cy.visit(URL);
        });
    });
});
person Jasp402    schedule 14.07.2021
comment
Komentar lain menyarankan hal yang sama kalau saya tidak salah, bukan? Saya mencobanya saat itu dan tidak berhasil. Tapi waktu mungkin telah berubah :D Terima kasih atas waktunya! :) - person DurkoMatko; 14.07.2021