Pendahuluan:Contoh ini menunjukkan metode lama penggunaan IRI RowGen untuk menghasilkan dan mengisi prototipe koleksi besar atau kompleks untuk pengujian atau kapasitas sistem menggunakan file datar. Saat Anda akan membaca, RowGen akan membuat data pengujian yang diperlukan dan membuat file CSV yang akan dimuat ke MongoDB menggunakan Utilitas Impor Mongo.
Pembaruan 2019:IRI sekarang juga menawarkan JSON dan dukungan driver langsung untuk memindahkan data antara koleksi MongoDB dan produk perangkat lunak IRI yang kompatibel dengan SortCL seperti RowGen atau FieldShield. Ini berarti Anda dapat menggunakan RowGen untuk menghasilkan file JSON pengujian untuk diimpor ke MongoDB (tidak berbeda dengan metode yang ditunjukkan di bawah dalam artikel ini), atau menggunakan FieldShield untuk menutupi data di tabel Mongo ke dalam target pengujian.
Perhatikan bahwa FieldShield dan RowGen disertakan dalam platform pengelolaan data IRI Voracity, yang menawarkan empat cara untuk membuat data pengujian.
Meskipun MongoDB adalah database NoSQL lintas platform yang bagus dan berorientasi pada dokumen, MongoDB tidak memiliki cara yang mudah untuk membuat dan mengisi prototipe koleksi besar atau kompleks yang dapat digunakan untuk menguji kueri atau merencanakan kapasitas. Artikel ini menjelaskan cara membuat data pengujian yang dapat digunakan MongoDB melalui IRI RowGen, yang menentukan parameter untuk file CSV sintetis, namun realistis, yang dapat diimpor MongoDB untuk pengujian fungsional dan performa.
Anda harus terlebih dahulu mempertimbangkan struktur dan konten data pengujian untuk kebutuhan koleksi Anda (tabel MongoDB). Lihat artikel ini untuk pertimbangan perencanaan umum.
Dalam contoh, kita tahu bahwa koleksi kita akan terdiri dari pelanggan yang semuanya memiliki Nama Pengguna , Nama Depan dan Belakang , Alamat Email , dan Nomor Kartu Kredit .
Untuk membuat data pengujian, pertama-tama kita harus membuat beberapa file kumpulan. File set adalah daftar satu atau lebih nilai tab-delimited yang mungkin sudah ada, atau perlu dibuat secara manual atau otomatis dari kolom database melalui wizard 'Generate New Set File' di IRI RowGen.
Membuat Nama
1) Buat skrip tugas nilai data gabungan (gabungan nama depan dan belakang) bernama “CreateNamesSet.rcl” yang dapat dieksekusi RowGen untuk menghasilkan file yang ditetapkan; panggil output “User.set” karena nama ini juga akan digunakan sebagai dasar untuk nama pengguna kami.
2) Buat tiga bidang yang akan dibuat di Names.set:nama belakang, pemisah tab, dan nama depan. Beri nama kolom pertama “LastName” dan pilih metode yang akan memilih nilai dari file kumpulan yang disediakan IRI bernama “names_last.set”. Tambahkan nilai literal “\t” untuk menambahkan pemisah tab, lalu ulangi proses yang digunakan untuk nilai LastName dan FirstName menggunakan names_first.set.
3) Jalankan CreateNamesSet.rcl dengan RowGen, baik pada baris perintah atau dari GUI Meja Kerja IRI, untuk menghasilkan file User.set yang dibatasi tab dengan nama depan dan belakang, yang akan digunakan dalam pembuatan nama pengguna dan pembuatan file pengujian akhir yang mengisi koleksi prototipe kami.
Membuat Nama Pengguna
Untuk Nama Pengguna, kami akan membuat file kumpulan yang menggunakan file Users.set yang dibuat di atas. Nama pengguna untuk contoh ini akan menggabungkan nama belakang, inisial depan, dan nomor yang dibuat secara acak antara 100 dan 999.
1) Buat skrip tugas RowGen baru dengan Compound Data Wizard, beri nama “CreateUsernamesSet.rcl”, dan beri nama file kumpulan output “Usernames.set”.
2) Buat nilai nama pengguna gabungan dengan tiga komponen bernama Part1, Part2, dan Part3.
3) Untuk Bagian1, pilih metode yang akan memilih nilai dari (menelusuri ke) file User.set yang dibuat sebelumnya, dan menentukan 'SEMUA' untuk jenis pemilihan guna mempertahankan hubungan antar pengguna, nama pengguna, dan alamat email. Atur ukurannya menjadi 5.
4) Untuk Bagian2 ulangi proses yang digunakan untuk Bagian1, kecuali untuk Jenis pilihan, pilih 'Baris' dan atur Indeks Kolom ke 2. Setel ukurannya ke 1. Ini menjamin semua nama belakang akan digunakan dalam generasi, dan bahwa huruf pertama dari nama depan di baris yang sama ditambahkan ke nama pengguna.
5) Untuk Bagian3, tentukan pembuatan nilai numerik antara 100 dan 999 untuk memberi akhiran bilangan bulat acak dengan setiap nama pengguna.
Setelah eksekusi CreateUsernamesSet.rcl, kami melihat bahwa setiap nama pengguna berisi lima huruf pertama dari nama belakangnya, lalu inisial pertamanya, lalu angka 3 digit acak:
Membuat Email
Selanjutnya kita akan membuat file kumpulan email yang menambahkan nilai nama pengguna dengan nama domain yang dipilih secara acak. Karena beberapa layanan email lebih populer daripada yang lain, kami juga akan membuat sistem pembobotan untuk mencerminkan frekuensi domain yahoo dan gmail yang lebih tinggi.
1) Jalankan job wizard 'New Custom Test Data' dari RowGen untuk membuat tugas yang disebut "CreateEmailsSet" yang menghasilkan file set bernama "Emails.set".
2) Buat bagian nama pengguna dari email. Dalam dialog Definisi Data Uji, klik Bidang Baru, dan ganti nama bidang pertama Nama Pengguna. Klik dua kali di atasnya untuk meluncurkan dialog Bidang Generasi dan "Tentukan ..." Setel filenya sebagai Nama Pengguna.set. Atur ukurannya menjadi 9 dan klik OK.
3) Menghasilkan bagian domain dari email (yang menyertakan simbol @). Dalam dialog Bidang Tata Letak, klik Bidang Baru dan ganti namanya menjadi "alamat" dan klik dua kali padanya. Dalam dialog Bidang Generasi, tentukan "," dengan posisi 10 dan ukuran 20. Di bagian Pembuatan Data / Distribusi Data di bawah, klik "Tentukan ..." untuk memberi nama distribusi data baru item "Email Berbobot".
4) Di New Distribution Wizard, pilih 'Weighted Distribution of Items' dan masukkan item ini masing-masing ke dalam rasio dan kotak teks literal, lalu tambahkan masing-masing ke daftar.
(32 | @gmail.com), (32 | @yahoo.com), (2 | @ibm.com), (4 | @msn.com), (2 | @ymail.com), (2 | @inmail.com), (2 | @cnet.net), (2 | @chase.org), (1 | @iri.com), (1 | @gdic.com), (1 | @aci.com), (2 | @oracle.net), (1 | @gmx.org), (4 | @aol.com), (2 | @inbox.com), (2 | @hushmail.com), (2 | @outlook.com), (2 | @zoho.com), (2 | @yandex.net), (2 | @mail.com)
Setelah Anda memasukkan nilai ini, klik Berikutnya di wizard asli untuk pindah ke dialog Target Data. Gunakan "Tambahkan Data Target ..." untuk menentukan file output "Email.set". Ini juga akan digunakan pada waktu pembuatan koleksi.
Email yang kami setel dengan bobot tertinggi (gmail dan yahoo) paling sering muncul, sementara yang lain muncul secara berkala.
Membuat Nomor Kartu Kredit
Terakhir, kami akan membuat nomor kartu yang valid secara komputasi dalam format XXXX-XXXX-XXXX-XXXX. Empat digit pertama mencerminkan Nomor Pengenal Masalah (IIN) aktual dari berbagai perusahaan kartu kredit, dan digit terakhir memverifikasi keaslian kartu.
Untuk melakukannya, buat dan jalankan tugas baru (kosong). Sebut saja “CreateCCNSet.rcl” (atau .scl), dan isi dengan script di bawah ini untuk membuat “CCN.set”. Nilai /INCOLLECT dalam skrip RowGen menentukan jumlah baris yang dihasilkan.
Fungsi pembuatan CCN yang dibuat khusus oleh RowGen, ccn_gen(“APAPUN, “-“) dipanggil untuk mengisi kolom ini. Perhatikan bahwa fungsi serupa ada untuk nomor jaminan sosial AS dan Korea, serta ID nasional Italia dan Belanda.
Membuat File Tes Akhir
Dengan semua kumpulan file yang telah dibuat, sekarang saatnya untuk menggunakannya dalam file CSV pengujian yang akan kami buat dan ekspor ke koleksi MongoDB.
1) Jalankan job wizard 'New Custom Test Data' dari RowGen untuk membuat tugas bernama “CreateMongoUserData.rcl” yang akan menghasilkan file Customers.csv, file yang kemudian akan diekspor ke MongoDB.
2) Klik “Bidang Tata Letak …” untuk masuk ke Dialog Bidang Tata Letak. Klik Bidang Baru dan ganti nama bidang pertama menjadi Nama Pengguna. Klik dua kali untuk meluncurkan dialog Bidang Generasi dan "Tentukan ..." Setel filenya sebagai Nama Pengguna.set; lalu pilih SEMUA untuk jenis pilihannya.
3) Klik Kolom Baru dan ganti nama kolom kedua menjadi Nama Belakang. Klik dua kali untuk meluncurkan dialog Bidang Generasi dan "Tentukan ..." Setel filenya sebagai Users.set; lalu pilih SEMUA untuk jenis pilihannya.
4) Klik Kolom Baru dan ganti nama kolom ketiga menjadi Nama Depan. Klik dua kali untuk meluncurkan dialog Bidang Generasi dan "Tentukan ..." Setel filenya sebagai Users.set; lalu pilih ROWS untuk jenis pilihannya dan setel indeks kolom ke 2.
5) Klik Bidang Baru dan ganti nama bidang keempat menjadi Email. Klik dua kali untuk meluncurkan dialog Bidang Generasi dan "Tentukan ..." Setel filenya sebagai Emails.set; lalu pilih SEMUA untuk jenis pilihannya.
6) Klik Kolom Baru dan ganti nama kolom kelima menjadi CreditCardNumbers. Klik dua kali untuk meluncurkan dialog Bidang Generasi dan "Tentukan ..." Setel filenya sebagai CCN.set; lalu pilih SEMUA untuk jenis pilihannya.
7) Setelah Anda memasukkan nilai ini, klik Berikutnya di wizard asli untuk pindah ke dialog Data Targets. Gunakan “Add Data Target …” untuk menentukan file output Customers.csv; lalu jalankan skrip di Workbench atau pada baris perintah untuk membuat file tersebut:
rowgen /spec=CreateMongoUserData.rcl
Perhatikan bahwa RowGen, selain menghasilkan file CSV ini saat runtime, juga dapat menghasilkan banyak file lain, database, laporan terformat, pipa bernama, prosedural, dan bahkan tampilan BIRT waktu nyata , dengan kolom dari data pengujian yang dihasilkan, semuanya pada waktu yang sama.
Mengimpor ke MongoDB
Untuk mengimpor file CSV ke Basis Data Mongo Anda, panggil 'utilitas mongoimport' dan jalankan perintah berikut:
--db <Database Name> --collection <Collection Name> --type csv --fields <fieldname1,fieldname2,...> --file <File path to the CSV file to import>
Berikut adalah catatan dalam kumpulan pengujian (ditunjukkan dengan MongoVUE), yang akan diindeks secara otomatis oleh MongoDB dengan nilai ID yang dihasilkan untuk setiap entri:
MongoDB memberikan nilai ID unik untuk setiap entri koleksi.
Anda juga dapat memuat data uji langsung ke Basis Data Mongo menggunakan driver ODBC DataDirect dari Progress Software untuk MongoDB. Sebelum menjalankan pekerjaan RowGen di Workbench, saya memiliki koleksi kosong bernama CUSTOMERS_CNN di MYDB untuk menerima data.
Saya menjalankan pekerjaan terlebih dahulu menggunakan stdout, untuk melihat pratinjau data pengujian saya di jendela konsol:
Setelah menjalankan skrip di Workbench, sekarang saya dapat melihat data saya menggunakan Data Source Explorer, dan driver DataDirect JDBC.
Untuk informasi selengkapnya tentang opsi pembuatan yang tersedia, lihat Target File Uji bagian di: http://www.iri.com/products/rowgen/technical-details.