Forum Testowania i AutomatyzacjiKategoria: PytanieTest z symulacja bez internetu
AvatarKatarzyna Kusiak zapytał 5 lat temu

Hej, 
Chce napisać test instalacji aplikacji, ale bez połączenia z internetem (w rzeczywistości net jest potrzebny do tej czynnosci) . Możecie mi podpowiedzieć jak zasymulowac w teście brak internetu?
EDIT:
Jest to apka desktop, która po instalacji na PC otwiera się w zwykłej przeglądarce.
Apka ma przypisaną licencję użytkownika, którą można aktualizować bez połączenia z internetem.
Dlatego zastanawiam się jak można ‘symulować’ brak połączenia z internetem. Czy to w ogóle możliwie

Dzieki
Pozdrawiam
Kasia 🙂 

Krzysiek KijasKrzysiek Kijas Personel odpowiedział 5 lat temu

Hej,
Wszystko zależy od tego jaki test chcesz przeprowadzić 😉
Jak wygląda scenariusz tego testu? Jakie są jego kroki? Mowa o testach desktopowych czy web?

Pozdrawiam,
K

1 odpowiedzi
Przemek BarańskiPrzemek Barański Personel odpowiedział 5 lat temu

Generalnie jest kilka dróg aby to zrobić.
W zależności od sytemu można wszystko zrealizować z poziomu graficznego. Na Windows używając na przykład program klikający AutoIT https://www.autoitscript.com/site/ i za pomocą niego zasymulować akcje manualnego wyłączenia połączenia sieciowego, odłączenia interfejsów sieciowych

Sam interfejs sieciowy można włączyć i wyłączyć za pomocą konsoli. I znowu na Windows można to zrobić uruchamiając konsolę z prawami administracyjnymi oraz wpisując komendy:
netsh interface show interface
i wtedy zobaczymy wszystkie interfejsy – czy są aktywne (Enabled) oraz ich nazwy (Interface Name)

Następnie wystarczy wywołać polecenie z nazwą naszego interfejsu np dla nazwy “Local Area Connection” :
netsh interface set interface name="Local Area Connection" admin=disabled
i już nie mamy połączenia internetowego z tego interfejsu (jeśli masz więcej interfejsów które trzeba deaktywaować np wi-fi to należy to zrobić)

Potem można wykonać test, który wymaga braku połączenia sieciowego

Po wszystkim wystarczy wpisać w konsolę
netsh interface set interface name="Local Area Connection" admin=enabled

Znając te polecenia można wywołać je z poziomu Pythona np takim skryptem:

import os
import time

os.system('netsh interface show interface')
#turning off
os.system('netsh interface set interface name="Ethernet" admin=disabled')

#waiting 60 seconds
time.sleep(60)

#turning on
os.system('netsh interface set interface name="Ethernet" admin=enabled')

No i ten skrypt (wywołany z konsoli lub IDE PyCharma uruchomionego z prawami administratora) będzie automatycznie wyłączał na 60 sekund internet.

Myślę że tyle wiedzy wystarczy aby zrobić automatycznie to czego potrzebujesz czyli w testach uruchomić taki skrypt, który umożliwi działania na maszynie z deaktywowanymi interfejsami sieciowymi

Oczywiście jest mnóstwo innych sposobów jak można to zrobić ale tutaj przedstawiamy najprostszy jaki można znaleźć na Windowsa.

Powodzenia w automatyzacji!