Phantomjs adalah browser tanpa kepala yang dapat skrip. Ini dapat menjadi bantuan penting dalam pengujian otomatis layanan web, dapat menghasilkan tangkapan layar dari halaman yang dikunjungi, secara efektif mencetak lalu lintas saat menjelajahi halaman, hanya untuk menyebutkan beberapa fiturnya. Phantomjs dapat ditulis dalam JavaScript, jadi kita tidak perlu mempelajari bahasa lain yang sudah kita kenal. Sayangnya, pengembangannya ditangguhkan saat ini, tetapi rilis stabil terakhir tersedia untuk diunduh.
Dalam tutorial ini kita akan menginstal phantomjs di RHEL 8 / CentOS 8, dan menjalankan salah satu contoh yang disertakan dengan paket untuk melihat alat kita berfungsi.
Dalam tutorial ini Anda akan mempelajari:
- Cara mengunduh paket phantomjs
- Cara mengekstrak dan menempatkan biner pada path
- Cara menjalankan contoh skrip dengan phantomjs
Menjalankan contoh skrip dengan phantomjs.
Persyaratan dan Konvensi Perangkat Lunak yang Digunakan
Kategori | Persyaratan, Konvensi, atau Versi Perangkat Lunak yang Digunakan |
---|---|
Sistem | RHEL 8 / CentOS 8 |
Perangkat Lunak | Phantomjs 2.1.1 |
Lainnya | Akses istimewa ke sistem Linux Anda sebagai root atau melalui sudo perintah. |
Konvensi | # – membutuhkan perintah linux yang diberikan untuk dieksekusi dengan hak akses root baik secara langsung sebagai pengguna root atau dengan menggunakan sudo perintah$ – membutuhkan perintah linux yang diberikan untuk dieksekusi sebagai pengguna biasa yang tidak memiliki hak istimewa |
Cara menginstal phantomjs di RHEL 8 / CentOS 8 petunjuk langkah demi langkah
Phantomjs benar-benar mandiri. Jika kita memiliki beberapa paket yang diperlukan, kita tidak perlu root
akses untuk menginstal alat untuk diri kita sendiri (yaitu, hanya dapat diakses oleh pengguna kami). Untuk memastikan setiap pengguna sistem dapat menggunakan alat ini, kami akan menempatkannya di jalur seluruh sistem, dan ini memerlukan pengguna yang memiliki hak istimewa.
- Pertama, kita harus memeriksa apakah paket yang dibutuhkan:
$ rpm -q glibcglibc-2.28-18.el8.x86_64$ rpm -q fontconfigfontconfig-2.13.1-2.el8.x86_64
Jika tidak, kita dapat menginstal paket-paket di atas dengan
dnf
:# dnf install glibc fontconfig
- Kami dapat mengunjungi situs unduhan resmi untuk menemukan URL yang kami butuhkan. Dalam kasus kami ini adalah alamat paket untuk Linux x86_64. Kami memasukkan
/opt
direktori, di mana kita akan menyimpan biner, contoh dan readmes:# cd /opt
Dan unduh paketnya dengan
wget
:# wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2
- Selanjutnya kita ekstrak arsipnya:
# tar -xvf phantomjs-2.1.1-linux-x86_64.tar.bz2
- Tempat umum untuk binari dan alat yang diinstal pengguna (yaitu, tidak berasal dari repositori distribusi) adalah
/usr/local/bin
. Di RHEL juga ada di$PATH
semua orang secara default. Kami membuat symlink ke direktori ini, dan dengan melakukannya setiap pengguna lama atau baru akan menemukannya dengan pelengkapan otomatis bash sederhana:# ln -s /opt/phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr /local/bin/phantomjs
- Untuk menguji kami memiliki
phantomjs
di jalur kami, kami dapat mengetikkan perintah tanpa jalur apa pun sebagai pengguna sistem mana pun:$ phantomjs --version2.1.1
- Sementara biner itu sendiri sekarang ada di jalur kita, contoh yang dikirimkan dengan paket terdistribusi tidak. Kami dapat mencoba alat kami dengan menjalankan contoh-contoh ini, yang dapat memberi kami permulaan untuk menulis skrip kami sendiri untuk phantomjs. Contoh di bawah ini,
netlog.js
akan mencetak semua lalu lintas yang dihasilkan saat phantomjs mengunjungi situs web, termasuk informasi header dan data biner. Dalam kasus kami, kami menjalankannya terhadapinfo.php
yang terkenal (phpinfo();
php's disebut) dilayani oleh server web yang berjalan secara lokal.$ phantomjs /opt/phantomjs-2.1.1-linux-x86_64/examples/netlog.js http://localhost/info.php
Kami diberikan semua data yang diminta dan diterima, jadi panggilan sederhana seperti ini akan menghasilkan keluaran yang panjang.
diminta:{ "headers":[ { "name":"Accept", "value":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 " }, { "name":"User-Agent", "value":"Mozilla/5.0 (Tidak diketahui; Linux x86_64) AppleWebKit/538.1 (KHTML, seperti Gecko) PhantomJS/2.1.1 Safari/538.1" } ], " id":1, "method":"GET", "time":"2019-01-15T17:48:57.393Z", "url":"http://localhost/info.php"}diterima:{ " body":"", "bodySize":60718, "contentType":"text/html; charset=UTF-8", "headers":[ { "name":"Date", "value":"Sel, 15 Jan 2019 17:48:57 GMT" }, { "name":"Server", "value":"Apache/2.4.35 (Red Hat Enterprise Linux) mod_perl/2.0.10 Perl/v5.26.2" }, { "name":"X-Powered-By", "value":"PHP/7.2.11" }, { "name":"Keep-Alive", "value":"timeout=5, max=100" } , [...]