Radiomodeemin testiasetusten tuottaminen graafisen käyttöliittymän avulla
Österholm, Jimi (2021)
Österholm, Jimi
2021
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2021052611352
https://urn.fi/URN:NBN:fi:amk-2021052611352
Tiivistelmä
Radioreitittimiä käytetään maailmanlaajuisesti eri teollisuuskohteissa. Radioreitittimien tehtävä on varmistaa luotettava ja toimintavarma tiedonsiirto. Esimerkkejä radioreitittimien käyttökohteista ovat SCADA, koneohjaus, GNSS, ympäristömonitorointi ja teollinen internet.
Radioreitittimien ohjelmistotestausta varten Satel on luonut automaatiotestausjärjestelmän, joka pohjautuu Jenkins-automaatiopalvelimeen ja sen avulla ajettaviin Robot Framework -testeihin. Testeissä on mahdollista asettaa laitteisiin asetuksia JSON-tiedostojen avulla.
Radioreitittimien laitteistoasetuksia sisältävät JSON-tiedostot luodaan komentorivipohjaisella JavaScript-ohjelmistolla. JavaScript-ohjelmiston käyttö vaatii asetuksien kirjoittamisen erilliseen CSV-taulukkoon. Kirjoitettuja asetuksia ei tarkisteta JSON-tiedoston luomisen aikana ja se mahdollistaa virheelliset asetukset. Virheet huomataan usein vasta testivaiheessa. Testit epäonnistuvat virheellisien asetuksien takia.
Opinnäytetyössä toteutettiin graafista käyttöliittymää hyödyntävä sovellus. Sovelluksella korvattiin aiempi käytössä oleva radioreitittimien laiteasetuksien luomiseen käytetty komentorivipohjainen JavaScript-ohjelmisto. Toteutettu sovellus luotiin Python-ohjelmointikielen ja PySimpleGUI-kirjaston avulla. Python valittiin ohjelmointikieleksi sen monipuolisuuden, sekä useiden olemassa olevien kirjastojen takia.
Radioreitittimien testiasetusten luomiseen kehitetyssä Python-sovelluksessa mahdollistettiin laitteistoasetuksien valitseminen listoista. Käyttäjän valinnoista syntyvät asetuskombinaatiot tarkistetaan ja virheelliset asetukset jätetään JSON-tiedostojen luomisprosessissa huomioimatta. Sovellukseen lisättiin mahdollisuus kirjata asetuksia myös käsin. Käsin kirjoittamista varten luotiin erillinen ikkuna, jossa mahdollistettiin harvinaisempien ja tuotekohtaisempien asetuksien käyttö. Sovellus viimeisteltiin PyInstallerin avulla ja siitä paketoitiin yksittäinen erikseen ajettava exe-tiedosto. Tämän exe-tiedoston avulla sovellusta on mahdollista käyttää itsenäisesti, ilman ohjelmistoriippuvuuksia.
Kokonaisuutena työssä päästiin asetettuun tavoitteeseen. Sovelluksen käytettävyyden ja toimintojen kehitys jatkuu opinnäytetyön jälkeen. Radio modems are used worldwide in industries to ensure reliable data transmission between different applications. The main use applications of radio modems include SCADA, automation, GNSS, environmental monitoring, and the industrial internet.
The reliability of radio modems must be tested in various ways. Testing devices manually is time-consuming, but testing is possible to be mostly automated.
Satel has created a test automation platform for radio modem firmware testing. The platform is based on a Jenkins automation server and it uses various tests written with Robot Framework. Radio modem device settings used in these tests can be set using JSON files.
JSON files used in radio modem testing are created using a terminal-based JavaScript program. Using this program requires the user to write device settings manually in a CSV file, which often leads to mistakes. Written settings are not automatically checked for faultiness during JSON file generation. Faulty settings in JSON files lead to failed tests.
The main idea behind this thesis was to create an application, that uses a user interface. The created application replaces the terminal-based JavaScript program. The application was created using Python programming language and its PySimpleGUI library. Python was chosen as the programming language because of its diversity and multiple existing libraries.
The Python program created for radio modem test setting generation made it possible to choose device settings from lists. The combinations of the chosen settings are automatically checked for faultiness. When faulty settings are found, they are discarded during JSON file generation. A window containing manual functionality similar to the old JavaScript-based program was also created for more product-specific settings. The program was finalized using PyInstaller and it was packaged into one executable file. The executable file allowed the program to be used independently, without any software dependencies.
The set requirements for the thesis were achieved successfully. The development of the program, its user interface, and functionalities continue after this thesis.
Radioreitittimien ohjelmistotestausta varten Satel on luonut automaatiotestausjärjestelmän, joka pohjautuu Jenkins-automaatiopalvelimeen ja sen avulla ajettaviin Robot Framework -testeihin. Testeissä on mahdollista asettaa laitteisiin asetuksia JSON-tiedostojen avulla.
Radioreitittimien laitteistoasetuksia sisältävät JSON-tiedostot luodaan komentorivipohjaisella JavaScript-ohjelmistolla. JavaScript-ohjelmiston käyttö vaatii asetuksien kirjoittamisen erilliseen CSV-taulukkoon. Kirjoitettuja asetuksia ei tarkisteta JSON-tiedoston luomisen aikana ja se mahdollistaa virheelliset asetukset. Virheet huomataan usein vasta testivaiheessa. Testit epäonnistuvat virheellisien asetuksien takia.
Opinnäytetyössä toteutettiin graafista käyttöliittymää hyödyntävä sovellus. Sovelluksella korvattiin aiempi käytössä oleva radioreitittimien laiteasetuksien luomiseen käytetty komentorivipohjainen JavaScript-ohjelmisto. Toteutettu sovellus luotiin Python-ohjelmointikielen ja PySimpleGUI-kirjaston avulla. Python valittiin ohjelmointikieleksi sen monipuolisuuden, sekä useiden olemassa olevien kirjastojen takia.
Radioreitittimien testiasetusten luomiseen kehitetyssä Python-sovelluksessa mahdollistettiin laitteistoasetuksien valitseminen listoista. Käyttäjän valinnoista syntyvät asetuskombinaatiot tarkistetaan ja virheelliset asetukset jätetään JSON-tiedostojen luomisprosessissa huomioimatta. Sovellukseen lisättiin mahdollisuus kirjata asetuksia myös käsin. Käsin kirjoittamista varten luotiin erillinen ikkuna, jossa mahdollistettiin harvinaisempien ja tuotekohtaisempien asetuksien käyttö. Sovellus viimeisteltiin PyInstallerin avulla ja siitä paketoitiin yksittäinen erikseen ajettava exe-tiedosto. Tämän exe-tiedoston avulla sovellusta on mahdollista käyttää itsenäisesti, ilman ohjelmistoriippuvuuksia.
Kokonaisuutena työssä päästiin asetettuun tavoitteeseen. Sovelluksen käytettävyyden ja toimintojen kehitys jatkuu opinnäytetyön jälkeen.
The reliability of radio modems must be tested in various ways. Testing devices manually is time-consuming, but testing is possible to be mostly automated.
Satel has created a test automation platform for radio modem firmware testing. The platform is based on a Jenkins automation server and it uses various tests written with Robot Framework. Radio modem device settings used in these tests can be set using JSON files.
JSON files used in radio modem testing are created using a terminal-based JavaScript program. Using this program requires the user to write device settings manually in a CSV file, which often leads to mistakes. Written settings are not automatically checked for faultiness during JSON file generation. Faulty settings in JSON files lead to failed tests.
The main idea behind this thesis was to create an application, that uses a user interface. The created application replaces the terminal-based JavaScript program. The application was created using Python programming language and its PySimpleGUI library. Python was chosen as the programming language because of its diversity and multiple existing libraries.
The Python program created for radio modem test setting generation made it possible to choose device settings from lists. The combinations of the chosen settings are automatically checked for faultiness. When faulty settings are found, they are discarded during JSON file generation. A window containing manual functionality similar to the old JavaScript-based program was also created for more product-specific settings. The program was finalized using PyInstaller and it was packaged into one executable file. The executable file allowed the program to be used independently, without any software dependencies.
The set requirements for the thesis were achieved successfully. The development of the program, its user interface, and functionalities continue after this thesis.