Lompat ke kandungan utama
ENGINEERING IDEAS INTO REALITY
Prototaip · Diuji dengan bahan kerja sebenar

Alat dalaman mengurangkan kerja manual berulang pasukan pembangunan perisian: penyamaran data dalam fail jadual, skrip untuk langkah di web dan dalam program, rakaman mesyuarat, dan prototaip sebut harga

Set 5 alat dalaman ini mengurangkan kerja manual berulang pasukan pembangunan perisian. Kami membangunkannya untuk kegunaan sendiri antara tahun 2020–2024. Set ini merangkumi program Anonymization yang menyamarkan data dalam fail jadual, skrip Selenium yang melaksanakan langkah pada halaman web, perakam RPA yang merekodkan penggunaan tetikus dan papan kekunci lalu memainkannya semula, aplikasi InMeet yang mengarahkan rakaman video mesyuarat, dan prototaip skrin DoQuot untuk membuat sebut harga. Setiap alat kami bina dan uji dalam pasukan kami sendiri.

Skrin prototaip DoQuot: jadual status sebut harga yang belum mempunyai data
Industri
Perkhidmatan
Tahun
2020–2024
Skop pekerjaan
5 alat dalaman yang kami bina dan uji dalam pasukan: program Anonymization (Python) membaca fail CSV, XLSX atau XLS, menyamarkan data mengikut fail konfigurasi, kemudian menghasilkan fail output dan fail pemetaan (mapping) untuk penukaran balik (Jan–Mac 2024, 5 minggu) · skrip Selenium + ChromeDriver memilih nilai dalam menu, melampirkan fail Excel dan menekan hantar pada halaman web, beserta manual (Jan–Mac 2024, 8 minggu) · perakam RPA (PyAutoGUI + pynput) merekodkan klik tetikus dan tekanan kekunci sebagai log beserta video skrin, kemudian memainkannya semula, diuji dengan kes menaip teks dalam Notepad (fail ujian bertarikh Apr 2023) · aplikasi InMeet dalam mod Controller mengarahkan peranti dalam mod Client memulakan dan menghentikan rakaman video, kemudian memuat naik ke pelayan, menurut manual tahun 2020 · prototaip skrin DoQuot bagi halaman jadual status dan halaman penciptaan sebut harga, beserta fail pemasangan Android (Okt 2024, 2 hari)

Ringkasan

  • Set 5 alat dalaman ini mengurangkan kerja manual berulang pasukan pembangunan perisian. Kami membina dan mengujinya sebagai alat dalaman dan prototaip antara tahun 2020–2024.
  • Program Anonymization menyamarkan data dalam fail CSV, XLSX dan XLS mengikut fail konfigurasi, dan boleh ditukar balik menggunakan fail pemetaan (mapping). Kami menyiapkannya dalam tempoh Januari–Mac 2024, mengambil masa 5 minggu.
  • Kerja automasi dibahagikan kepada 2 jenis: Selenium untuk halaman web yang butangnya boleh dirujuk daripada kod halaman web, dan perakam RPA yang memainkan semula mengikut kedudukan pada skrin untuk program pada komputer.
  • InMeet membolehkan peranti dalam mod Controller mengarahkan peranti dalam mod Client memulakan dan menghentikan rakaman video mesyuarat, kemudian memuat naik ke pelayan, menurut manual tahun 2020.
  • DoQuot ialah prototaip skrin jadual status dan halaman penciptaan sebut harga yang kami bina pada bulan Oktober 2024, beserta fail pemasangan Android.
01

Masalah di tapak

Pasukan pembangunan kami mempunyai kerja yang perlu dilakukan secara manual setiap kali, iaitu menyamarkan data dalam fail Excel sebelum digunakan seterusnya, mengklik untuk memilih menu, melampirkan fail dan menekan hantar pada halaman web yang sama berulang kali, merakam video mesyuarat, dan membuat sebut harga daripada senarai kerja dan bilangan hari bekerja (Manday). Kerja-kerja ini memakan masa dan mudah tersilap apabila diulang berkali-kali.

02

Apa yang kami lakukan

Kami menulis alat kecil yang berasingan mengikut kerja, iaitu program Python yang menyamarkan data dalam fail CSV, XLSX dan XLS dengan cara yang boleh ditukar balik, skrip Selenium untuk langkah pada halaman web, perakam RPA (Robotic Process Automation, iaitu penggunaan perisian untuk melaksanakan langkah yang sama pada komputer mengikut urutan yang ditetapkan) untuk program pada komputer, aplikasi InMeet yang membolehkan satu peranti mengarahkan peranti lain merakam video mesyuarat, dan prototaip skrin DoQuot.

03

Hasil ujian dengan bahan kerja sebenar

Dokumen ringkasan projek tahun 2024 menyatakan bahawa program Anonymization dan skrip Selenium telah siap, dengan Selenium tidak dapat mengesan elemen yang dilukis pada canvas (seperti graf). Perakam RPA mempunyai hasil larian kes ujian beserta log dan video. InMeet dapat mengarahkan rakaman video dan muat naik menurut manual tahun 2020, dan DoQuot mempunyai prototaip skrin jadual status dan halaman penciptaan sebut harga.

Latar belakang masalah

Keperluan kes ini datang daripada kerja dalam pasukan pembangunan kami sendiri. Kerja yang perlu dilakukan secara manual setiap kali ialah menyamarkan data dalam fail Excel sebelum digunakan seterusnya, mengklik untuk melaksanakan langkah yang sama pada halaman web, merakam video mesyuarat, dan membuat sebut harga daripada senarai kerja dan Manday.

Kerja-kerja ini boleh dilakukan secara manual, tetapi memakan masa dan mudah tersilap apabila diulang berkali-kali, contohnya mengklik untuk menguji halaman web yang sama setiap kali program diubah suai. Oleh itu, kami membuat alat kecil yang berasingan mengikut kerja, dan setiap alat dibangunkan pada tahun yang berbeza antara tahun 2020–2024.

Apakah itu RPA

RPA (Robotic Process Automation) ialah penggunaan perisian untuk melaksanakan langkah pada komputer mengikut urutan yang ditetapkan, seperti mengklik, mengisi, melampirkan fail dan menekan hantar. Ia sesuai untuk kerja yang langkahnya sama setiap kali.

Keperluan dan kekangan

Setiap alat mempunyai keperluan tersendiri, mengikut dokumen keperluan, manual dan skop kerja yang kami tulis. Keperluan utama adalah seperti berikut.

  • Anonymization: membaca fail CSV, XLSX dan XLS, menetapkan data yang perlu disamarkan dalam fail konfigurasi (file_config), dan mesti boleh ditukar balik kepada data asal.
  • Selenium: memilih nilai dalam menu lungsur (dropdown), melampirkan fail Excel, dan menekan butang hantar atau muat turun pada halaman web.
  • Perakam RPA: merekodkan klik tetikus dan tekanan kekunci sebagai log beserta video skrin, supaya dapat disemak kemudian bagi kedua-dua pusingan rakaman dan pusingan main semula.
  • InMeet: membolehkan satu peranti mengarahkan peranti lain memulakan dan menghentikan rakaman video, kemudian memuat naik fail video ke pelayan.
  • DoQuot: skrin untuk membuat sebut harga daripada senarai kerja dan Manday, bermula dengan halaman jadual status dan halaman penciptaan sebut harga.

Kekangan utama datang daripada cara alat merujuk skrin. Selenium membaca butang dan medan input daripada kod halaman web, maka ia tidak dapat mengesan elemen yang dilukis pada canvas seperti graf. Perakam RPA pula memainkan semula mengikut kedudukan pada skrin, maka ia bergantung pada kedudukan tetingkap dan resolusi skrin.

Patutkah menggunakan Selenium atau perakam tetikus dan papan kekunci?

Gunakan Selenium apabila kerja berada pada halaman web, dan gunakan perakam apabila kerja berada dalam program pada komputer. Selenium merujuk butang dan medan input daripada kod halaman web, seperti ID, NAME, XPATH atau CSS selector, maka ia tidak bergantung pada kedudukan pada skrin. Perakam menggunakan PyAutoGUI/pynput untuk mengawal tetikus dan papan kekunci mengikut kedudukan yang dirakam.

Oleh itu, perakam boleh digunakan dengan program yang tidak mempunyai kod halaman web untuk dirujuk. Kes ujian kami ialah menaip teks dalam program Notepad.

  1. 1

    Anonymization: menyamarkan data dalam fail jadual

    Pengguna menyediakan fail konfigurasi (file_config), kemudian menjalankan arahan encode pada fail sumber CSV, XLSX atau XLS melalui tetingkap arahan (Terminal). Program menghasilkan fail yang datanya telah disamarkan dan fail pemetaan (mapping) dalam folder output. Apabila data asal diperlukan semula, jalankan arahan decode bersama fail pemetaan.

  2. 2

    Selenium: mengarahkan pelayar melaksanakan langkah pada halaman web

    Skrip Python membuka halaman web melalui ChromeDriver, memilih nilai dalam menu, melampirkan fail Excel, kemudian menekan butang hantar atau muat turun. Manual kami menerangkan cara mengenal pasti kedudukan butang dan medan input daripada kod halaman web.

  3. 3

    Perakam RPA: merakam kemudian memainkan semula

    Semasa pengguna bekerja seperti biasa, program merekodkan klik tetikus dan tekanan kekunci sebagai log beserta video skrin. Kemudian log ditukar menjadi skrip PyAutoGUI/pynput untuk dimainkan semula, dan log serta video bagi pusingan main semula disimpan untuk semakan kemudian.

  4. 4

    InMeet: mengarahkan rakaman video mesyuarat dari satu peranti

    Peranti yang memilih mod Controller mengarahkan peranti yang menekan Join dan masuk dalam mod Client untuk memulakan atau menghentikan rakaman video, kemudian fail video dimuat naik ke pelayan.

  5. 5

    DoQuot: prototaip skrin sebut harga

    Prototaip ini mempunyai halaman jadual status sebut harga dan halaman penciptaan sebut harga. Ia merupakan skrin statik, dan disertakan fail pemasangan Android (APK) untuk melihat skrin pada peranti.

Apa yang kami bina dan uji

Kami membina program, skrip, manual dan prototaip berikut, dan menggunakannya dalam pasukan.

  • Program Anonymization beserta dokumen keperluan, dan manual penciptaan fail konfigurasi, encode dan decode
  • Skrip Selenium + ChromeDriver beserta manual mengenal pasti kedudukan butang dan medan input
  • Perakam RPA: skrip rakaman, skrip main semula, dan kes ujian beserta log dan video
  • Aplikasi InMeet beserta manual penggunaan mod Controller dan Client tahun 2020
  • Prototaip DoQuot: halaman jadual status sebut harga, halaman penciptaan sebut harga, dan fail pemasangan Android (APK)

Hasil ujian setiap alat

Program Anonymization dan skrip Selenium siap pada tahun 2024. Perakam RPA mempunyai hasil larian kes ujian, InMeet dapat mengarahkan rakaman video dan muat naik, dan DoQuot mempunyai prototaip skrin. Dokumen ringkasan projek tahun 2024 kami menyatakan bahawa program Anonymization siap dalam masa 5 minggu dan skrip Selenium siap dalam masa 8 minggu, kedua-duanya dalam tempoh Januari–Mac 2024. Hasil dalam jadual di bawah diperoleh daripada dokumen ringkasan projek, manual, serta fail log dan video ujian.

Perkara yang boleh dilakukan oleh setiap alat dan kekangan teknikal

AlatPerkara yang boleh dilakukan dan telah diujiKekangan teknikal
AnonymizationSiap pada tahun 2024. Menyamarkan dan menukar balik fail CSV, XLSX dan XLS menggunakan fail pemetaanFail pemetaan mesti disimpan berasingan daripada fail yang diserahkan
SeleniumSiap pada tahun 2024Tidak dapat mengesan elemen yang dilukis pada canvas
Perakam RPAMempunyai hasil larian kes ujian beserta log dan video. Fail bertarikh Apr 2023Memainkan semula mengikut kedudukan pada skrin
InMeetDapat mengarahkan rakaman video dan muat naik menurut manual tahun 2020Berfungsi untuk rakaman video dan muat naik. Tiada bahagian transkripsi suara kepada teks
DoQuotPrototaip halaman jadual status dan halaman penciptaan sebut harga, beserta fail pemasangan Android, Okt 2024Skrin statik. Tiada bahagian pengiraan harga

Pada tahun 2024, kami menyimpan kod RPA dalam koleksi kod guna semula (Code Reuse) syarikat.

Apakah yang kita pelajari

Kerja ini memberikan prinsip berikut untuk kerja automasi berskala kecil dalam pasukan.

  • Pilih kaedah mengikut apa yang didedahkan oleh program untuk dirujuk. Jika terdapat kod halaman web untuk merujuk butang dan medan input, gunakan kaedah seperti Selenium dahulu. Jika tiada, barulah gunakan rakaman kedudukan pada skrin. Bagi bahagian yang dilukis pada canvas, kaedah pemeriksaan berasingan perlu dirancang sejak awal.
  • Kerja automasi mesti boleh disemak kemudian. Perakam RPA menyimpan log dan video bagi kedua-dua pusingan rakaman dan pusingan main semula. Apabila hasilnya tidak sepadan, kami dapat membandingkan langkah mana yang berbeza.
  • Penyamaran data yang boleh ditukar balik memindahkan risiko kepada fail pemetaan. Fail ini mesti disimpan berasingan daripada fail yang diserahkan, dan akses kepadanya mesti dihadkan.

Cara menggunakan pendekatan ini pada kerja anda

Jika pasukan anda mempunyai kerja mengklik, mengisi, melampirkan fail atau menyembunyikan data dengan langkah yang sama setiap kali, anda boleh menggunakan pendekatan yang sama seperti kes ini, iaitu mengasingkan kerja satu demi satu, memilih alat mengikut jenis perisian dan menyimpan log untuk semakan kemudian. Bahagian yang perlu disesuaikan ialah cara merujuk butang dan medan input apabila perisian anda berbeza daripada kes ini.

Bahagian yang boleh digunakan semula dan bahagian yang perlu diubah suai

PekerjaanBoleh digunakan semulaPerlu diubah suai apabila
Langkah pada halaman webSelenium + ChromeDriver dan penentuan kedudukan dengan ID, NAME, XPATH atau CSS selectorHalaman web mempunyai graf atau bahagian yang dilukis pada canvas, atau struktur halaman web kerap berubah
Langkah dalam perisian pada komputerRakaman sebagai log dan video, kemudian ditukar kepada skrip main semulaKedudukan tetingkap atau resolusi skrin berbeza daripada semasa rakaman; perlu merakam semula atau menyesuaikan skrip
Menyembunyikan data dalam fail jadualFail tetapan, dan encode/decode dengan fail pemadananFail bukan CSV, XLSX atau XLS, atau anda tidak mahu data boleh ditukar semula
Rakaman mesyuaratArahan merakam video daripada satu komputer dan memuat naik ke pelayanAnda juga memerlukan teks transkripsi; bahagian transkripsi perlu ditambah sebagai kerja berasingan
Sebut hargaDraf halaman jadual status dan halaman penyediaan sebut hargaAnda mahukan pengiraan daripada Manday atau anggaran harga automatik; bahagian ini perlu dibangunkan secara baharu
  • Asingkan kerja yang langkahnya sama setiap kali daripada kerja yang kerap berubah. Kerja yang kerap berubah tidak sesuai untuk dirakam dan dimainkan semula.
  • Semak sama ada halaman web atau perisian anda membenarkan butang dan medan input dirujuk.
  • Tetapkan orang yang menyimpan fail pemadanan dan tempat penyimpanannya sebelum mula menyembunyikan data sebenar.
  • Tetapkan hasil yang dikehendaki dan skop setiap alat dengan jelas dari awal.

Teknologi yang digunakan

PythonAnonymization (encode/decode fail CSV, XLSX, XLS)Selenium + ChromeDriverPyAutoGUI + pynputInMeet (aplikasi arahan rakaman video mesyuarat)DoQuot (prototaip skrin)

Soalan Sering Ditanya

Jika anda mahukan alat seperti ini dalam pasukan anda, bagaimana hendak bermula?

Set alat ini kami gunakan secara dalaman dalam pasukan. Jika anda mahukan sistem seperti ini, kami boleh membangunkannya mengikut skop kerja anda. Mulakan dengan mengasingkan kerja yang langkahnya sama setiap kali, kemudian semak sama ada halaman web atau perisian anda membenarkan butang dan medan input dirujuk, untuk memilih antara Selenium dengan perakam tetikus dan papan kekunci.

Apakah perbezaan antara Selenium dengan perakam tetikus dan papan kekunci?

Selenium mengawal pelayar dengan merujuk butang dan medan input daripada kod halaman web, maka ia sesuai untuk aplikasi web. Perakam pula menggunakan PyAutoGUI/pynput untuk mengawal tetikus dan papan kekunci mengikut rakaman, boleh digunakan dengan perisian pada komputer, tetapi bergantung pada kedudukan pada skrin.

Bolehkah data yang telah disembunyikan ditukar semula?

Boleh. Semasa arahan encode dijalankan, perisian turut mencipta fail pemadanan (mapping). Apabila arahan decode dijalankan bersama fail pemadanan ini, data asal akan diperoleh semula. Oleh itu, anda perlu menyimpan fail pemadanan berasingan daripada fail yang dihantar kepada pihak lain dan mengehadkan orang yang boleh mengaksesnya.

Bagaimanakah InMeet mengarahkan rakaman video mesyuarat daripada satu komputer?

Menurut manual tahun 2020, komputer yang memilih mod Controller mengarahkan komputer yang menekan Join dalam mod Client untuk memulakan dan menghentikan rakaman video, kemudian fail video dimuat naik ke pelayan. InMeet berfungsi merakam video. Jika anda juga memerlukan teks transkripsi, bahagian transkripsi perlu ditambah sebagai kerja berasingan.

Bolehkah skrip Selenium digunakan pada halaman web yang mempunyai graf?

Boleh digunakan untuk butang, menu dan medan input pada halaman web tersebut, tetapi skrip Selenium kami tidak dapat mengesan elemen yang dilukis pada canvas, seperti graf, kerana Selenium merujuk elemen daripada kod halaman web melalui ID, NAME, XPATH atau CSS selector. Jika kerja anda perlu memeriksa bahagian yang dilukis pada canvas, kaedah pemeriksaan berasingan perlu dirancang dari awal.

Mahukan sistem seperti ini dalam kerja anda?