edhouse-CookieGdpr-Policy-s
5423043
0
/cz/gdpr/
642650B6B

Zpět na Blog

SQA

Sekubu – jednoduché spouštění skriptů

Tech_blog

Pro automatizaci nebo alespoň urychlení práce používám denně různé skripty. Mám jich už docela hodně a efektivita používání se začala pomalu snižovat, protože spouštění skriptů vyžadovalo vždy nějaké „kroky navíc“. Ten nejvíce otravný krok je zapamatovat si název nebo umístění daného skriptu a spustit ho v příkazové řádce.

Sekubu

Hledal jsem tedy nějaké řešení – nástroj, který by dokázal jednoduše spouštět skripty kliknutím na tlačítko. Nic dalšího jsem od nástroje neočekával ani nevyžadoval, i přes to jsem žádný takový nenašel. A tak jsem si ho vytvořil.

Sekubu je napsaný v Pythonu a příkazy (tlačítka) se definují pomocí souboru XML. Pokud by vás zajímaly technické detaily, tak příkazy se spouští přes subprocess.Popen() a pro generování GUI jsem použil DearPyGui.

Na GitHubu najdete návod a několik příkladů, jak si vaši XML konfiguraci vytvořit. Při prvním spuštění se konfigurační soubor vytvoří automaticky, takže můžete vycházet z něj.

Spustit konkrétní aplikaci nebo Powershellový skript je hračka:

<button label="Click me!">run_this_app.exe</button>
<button label="My script">powershell.exe -NoExit "./my_script.ps1"</button>

Spustit Powershellový skript na pozadí a nechat si jeho výstup vypsat do modálního okna není vůbec problém:

<button label="Hello World!" new_console="false" show_output="if_not_empty">powershell.exe -Command "Write-Host 'Hello World!'"</button> 

Lepší přehlednost v GUI zajistí textové popisky nebo oddělovače:

<text>Some fancy text note</text>
<separator/> 

Jak Sekubu používám?

Sekubu na mém počítači slouží jako „Start menu“. Spouštím pomocí něj například skript na stažení vývojového buildu projektu, na kterém pracuji, automatické testy, nebo pomocí něj stahuji výsledky testů ze sdíleného disku a ukládám si je do poznámek v Obsidianu. Nastavuji si pomocí něj prostředí pro Python, restartuji server naší aplikace nebo třeba otevírám konfigurační soubor v textovém editoru.

Netuším, kolik času mi tohle denně ušetří. Ale uznejte sami, že kliknout na tlačítko a pustit se rovnou do práce je mnohem lepší než otevřít textový editor, najít požadovaný soubor, upravit ho, restartovat aplikaci a až poté se pustit do práce.

Toolkity

Další instance Sekubu a složek se skripty, které automaticky kopíruji na virtuální počítače nebo skutečné počítače v laboratoři, kam chodím testovat, mám také uložené na síťovém úložišti. Pracovně jim říkám „toolkity“. Mám tak k dispozici nástroje, které mi pomáhají rychle nastavovat testovací prostředí všude, kde potřebuji. Namísto klikání do instalátorů a spouštění různých příkazů nebo skriptů stačí jen kliknout na tlačítko „Nastavit prostředí“.

Jeden z mých skriptů slouží právě k vytvoření těchto toolkitů. Pokud udělám v toolkitu nějakou změnu, stačí jeden klik a za moment mám vše aktualizované na onom síťovém úložišti.

Pomůžete s testováním?

Kovářova kobyla chodí bosa, to je známá věc. Sekubu zatím neprošlo žádným testováním. I když jej bez problémů denně používám, netroufnu si tvrdit, že chyby neobsahuje. Budu tedy rád za každou zpětnou vazbu.

Jediná věc, se kterou se občas potýkám je správný formát zápisu samotného příkazu. Zápis nijak neupravuji a předávám rovnou do subprocess.Popen(). Pokud se tedy objeví příkaz, který nejde spustit, je to většinou jen špatným zápisem.

Sdílet článek

Autor

Jan Zatloukal

Jan ZatloukalTester a vývojář se zálibou v automatizaci a zlepšování procesu vývoje. Aktuálně pracuji na projektu automatizace elektronových mikroskopů v Pythonu.