Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP Anwendungen-Testphase- wie?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PHP Anwendungen-Testphase- wie?

    Guten Tag,

    ich habe eine PHP-Anwendung geschrieben, die ziemlich lange gedauert hat (Chat,Fotogallerie,Nachrichtensystem,Login...)

    Nun bin ich in der Testphase. Bis jetzt habe ich mein Projekt aber nur auf meinem localhost als Einzelanwender getestet.

    Mich würde interessieren, ob es möglich wäre, meine Anwendung im größeren Rahmen zu testen(beispielweise das Chatsystem).
    Also zum Beispiel 10 Leute benutzen die Anwendung gleichzeitig.
    Ist das möglich, ohne die Anwendung gleich online zu stellen?

    Gruß Robert


  • #2
    Zitat von elrt Beitrag anzeigen
    Guten Tag,

    ich habe eine PHP-Anwendung geschrieben, die ziemlich lange gedauert hat (Chat,Fotogallerie,Nachrichtensystem,Login...)

    Nun bin ich in der Testphase. Bis jetzt habe ich mein Projekt aber nur auf meinem localhost als Einzelanwender getestet.

    Mich würde interessieren, ob es möglich wäre, meine Anwendung im größeren Rahmen zu testen(beispielweise das Chatsystem).
    Also zum Beispiel 10 Leute benutzen die Anwendung gleichzeitig.
    Ist das möglich, ohne die Anwendung gleich online zu stellen?

    Gruß Robert

    *g*...
    Du fragst einfach in Foren (wie diesen) nach Betatestern und weist diesen ein Zugangsdaten zu.
    "Dummheit redet viel..Klugheit denkt und schweigt.." [Amgervinus]

    Kommentar


    • #3
      Ohne es online zu stellen wird das aber nix... es sei denn, deine Tester befinden sich alle in einem gemeinsamen LAN.
      Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

      Kommentar


      • #4
        Zitat von lstegelitz Beitrag anzeigen
        Ohne es online zu stellen wird das aber nix... es sei denn, deine Tester befinden sich alle in einem gemeinsamen LAN.
        Man kann ja auch auf einen PC über deine Online IP zugreifen, so könnte man es bei dir lokal testen und die Tester sitzen sonst wo im Internet, LAN ist nicht unbedingt nötig! Oder du hast bei dir daheim eben verschiedene Clients (unterschiedliche Browser) oder vlt. hast du ja mehrere PCs/Laptops bei dir daheim.

        Ansonsten wird oftmals schon online getestet, allerdings wird dann eben die ganze Anwendung nochmal per htaccess oder ähnlichem geschützt dass nur "eingeweihte" Betatester Zugang dazu haben.

        Kommentar


        • #5
          Ich hab zB auch für meine Projekte div. Simulationsfunktionen (Benutzer, Threads, Nachrichten und was es noch so gibt anlegen...).
          Während der Entwicklung ist es ja meißt so, dass man nur ein paar Testdaten anlegt und kA hat, wie die Performance am Livesystem wirklich sein wird.
          Durch die automatisch erstellten Benutzer usw kann ich dann zB feststellen, dass der Query bei einem Benutzern zwar optimal rennt, aber bei 1000 Benutzer im System 2 Sekunden benötigt...

          Damit erspart man sich dann oft ein komplettes Code umkrempeln da das Design falsch war, oder man kann frühzeitig genug Queries anpassen, Indizes anlegen usw.

          Hat auch was damit zu tun, dass zB die Datenbankänderung im Livesystem mit 1000000 Einträgen unnötig lange dauern würde und man so die Downtime minimal halten kann.

          Kommentar


          • #6
            Ich schmeiße mal VMs in dem Raum, damit kannst du verschiedene Hosts mit verschiedenen Betriebssystemen/Browsern virtualisieren und verschiedene Testcases durchspielen...

            Kommentar


            • #7
              Zitat von Flor1an Beitrag anzeigen
              Man kann ja auch auf einen PC über deine Online IP zugreifen, so könnte man es bei dir lokal testen und die Tester sitzen sonst wo im Internet, LAN ist nicht unbedingt nötig!
              Dann muss man bei seinem Router allerdings das Portforwarding entsprechend einstellen und der evtl. Softwarefirewall beibringen das sie die Ports nicht blocken soll.
              MfG

              Kommentar


              • #8
                Sollte ja keine größere Hürde darstellen.

                Kommentar


                • #9
                  Ich sags nur, nicht das der TE dann da sitzt und verzweifelt weil er keine Antwort von seiner öffentlichen IP bekommt. Außerdem kann so ein Router echt hartnäckig sein^^
                  MfG

                  Kommentar


                  • #10
                    alles klar, danke für eure Tips


                    Ich hätte nochmal eine Frage an ragtek:
                    Wie sehen deine Simulationsfunktionen aus?
                    Klingt sehr interessant auf jeden Fall. Ich frage mich nur, wie du die Klicks/etc. simulierst.
                    Wie machst du das beispielsweise für ein Nachrichtensystem ?

                    Gruß Robert

                    Kommentar


                    • #11
                      Ich simuliere nicht die Klicks, sondern habe zB folgendes:

                      PHP-Code:
                      while ($i $_GET['usercounter'])
                      {
                          
                      $user = new User();
                          
                      $username 'testuser' getrandomint();
                          
                      $user->setName $username;
                          
                      $user->setPassword $username;
                          
                      $user->pre_save()
                         if (
                      count($user->errors) > 0)
                         {
                            ..
                          }
                          
                      $user->save();

                      Damit kann ich nur die Klasse prüfen(da ich nochimmer keine Ahnung von Unit Tests habe^^) und wie schon gesagt, mir geht es in diesen Fällen nur darum, dass ich viele Daten in der DB habe um die Performance zu prüfen.

                      Für automatisiertes Testen gibt es zB: Selenium web application testing system wobei ich hier gestehen muss, das ich noch keine Erfahrung damit habe

                      Kommentar


                      • #12
                        @ragtek:
                        Geschickter wärs vielleicht wenn man das folgendermaßen macht:
                        PHP-Code:
                        $user = new User();
                        $user->setName 'testuser' getrandomint();
                        $user->setPassword $username;
                        if (
                        $user->save()) {
                            die(
                        header('Location: saveSucess.php'));
                        }
                        die(
                        header('Location: saveFailed.php')); 
                        PHP-Code:
                        class User
                        {
                            
                        //...

                            
                        public function save() {
                                if (
                        $this->_validate()) {
                                     return 
                        $this->_save();
                                 }
                                 return 
                        false;
                            }

                            protected function 
                        _save() {
                                
                        // Daten irgendwie speichern.
                            
                        }

                            protected function 
                        _validate() {
                                
                        // validate params
                                
                        return true/false;
                            }

                        damit hättest du den Vorteil, dass du immer nur die save() aufrufst und je nach dem ob die Daten valide sind dann gespeichert wird oder nicht. Man könnte dann noch eine Methode implementieren, die zurückliefert was genau schief gelaufen ist.
                        "My software never has bugs, it just develops random features."
                        "Real programmers don't comment. If it was hard to write, it should be hard to understand!"

                        Kommentar


                        • #13
                          Somit hast du aber nur einen User generiert und danach wird auf eine andere Seite weiter geleitet. Ich seh irgendwie nicht den Sinn hinter deinen Weiterleitungen.

                          Kommentar


                          • #14
                            Zitat von Paul.Schramenko Beitrag anzeigen
                            @ragtek:
                            Geschickter wärs vielleicht wenn man das folgendermaßen macht:
                            PHP-Code:
                            $user = new User();
                            $user->setName 'testuser' getrandomint();
                            $user->setPassword $username;
                            if (
                            $user->save()) {
                                die(
                            header('Location: saveSucess.php'));
                            }
                            die(
                            header('Location: saveFailed.php')); 
                            PHP-Code:
                            class User
                            {
                                
                            //...

                                
                            public function save() {
                                    if (
                            $this->_validate()) {
                                         return 
                            $this->_save();
                                     }
                                     return 
                            false;
                                }

                                protected function 
                            _save() {
                                    
                            // Daten irgendwie speichern.
                                
                            }

                                protected function 
                            _validate() {
                                    
                            // validate params
                                    
                            return true/false;
                                }

                            damit hättest du den Vorteil, dass du immer nur die save() aufrufst und je nach dem ob die Daten valide sind dann gespeichert wird oder nicht. Man könnte dann noch eine Methode implementieren, die zurückliefert was genau schief gelaufen ist.
                            Wie schon erwähnt, hätte ich dadurch keine Schleife, aber wäre auch kein Problem, könnte man ja an die URL anhänge, ABER, meine Klasse sorgt schon für die "interne" Validierung und Fehlerrückgabe.
                            Daher die Prüfung, ob der Fehlerarray Daten erhält und falls doch, wird das geloggt (wollte hier den Code nur nicht posten^^)

                            Kommentar

                            Lädt...
                            X