Che cosa è fakemail?
fakemail è un server di posta falso che cattura e-mail come file di test di accettazione. Questo evita la configurazione eccessivo della creazione di un vero server di posta e cercando di estrarre i contenuti della coda di posta.
Ci sono due versioni di Fakemail, il primo scritto in Perl e il secondo scritto in Python. Le loro caratteristiche sono identiche. Manteniamo due versioni, semplicemente perché la versione Perl sarà più adatto per alcuni utenti, mentre la versione di Python sarà più adatto per gli altri.
Se avete avuto di testare le applicazioni che inviano e-mail, per esempio come parte di una rete processo di iscrizione, si sa che cosa un esercizio coinvolti e complicato che può essere. Di solito è necessario iscriversi con uno speciale indirizzo e-mail, la posta va al server di posta e quindi leggere nuovamente nel test con un POP / IMAP cliente. Ci sono parecchi lati negativi in questo approccio, è necessario installare software aggiuntivo per interagire con il server POP, si soffre di guasti spurio a causa di dipendenza da infrastrutture esterne, ed è molto molto lento.
Fakemail opere intercettando la posta prima di lasciare la macchina, sostituendo la tua Mail Transfer Agent (MTA). Si tratta di un semplice script eseguiti dalla riga di comando che è possibile lanciare dall'interno del quadro di prova.
Mail vengono semplicemente gettati in una directory a vostra scelta, ecco la una directory temporanea, completa di tutte le intestazioni di posta. In breve, il parametro port è la porta di ascolto inizialmente, il parametro host non è attualmente controllato e la bandiera di fondo dice fakemail per essere eseguito come un demone e per restituire l'ID di processo del processo distaccato.
Se hai già un server SMTP sul computer, allora si avrà sia bisogno di disattivarla per liberare la porta 25 o utilizzare un'altra porta. La seconda opzione significa che la libreria l'invio della posta deve avere la capacità di scegliere una porta diversa dalla 25 per una sorta di configurazione.
Installazione della versione di Perl
Non vi è alcuna installazione del programma fakemail sé, ma ha alcuni prerequisiti. Il primo è Perl stesso e al di là della distribuzione di base è inoltre necessario il CPAN modulo Net:: Server:: Mail:: SMTP . Una volta che Perl è installato è possibile installare questo modulo con ...
Per fakemail sé tutto ciò che dovete fare è scompattare il SourceForge tarball ed è pronto per l'esecuzione.
Installazione della versione di Python
Ci sono 3 pacchetti tra cui scegliere, a seconda del sistema operativo. Solo l'utilizzo del pacchetto sorgente saranno discussi qui (l'uso del pacchetto di Windows dovrebbe essere autoesplicativo). Scompattare il pacchetto, quindi eseguire il seguente comando:
Che installerà lo script fakemail.py nella posizione standard, probabilmente / usr / bin. È possibile installarlo da qualche altra parte, specificando l'opzione - prefix nel modo seguente (consigliato):
Test di installazione
Per confermare tutto funziona, si dovrebbe inviare una e-mail. Si noti che la versione Perl e Python hanno nomi leggermente diversi per garantire che si possono tranquillamente installare sia gli uni accanto agli altri.
Per avviare la versione Perl aprire un terminale e digitare:
Per avviare il tipo di versione di Python:
Tutti questi argomenti sono obbligatori.
Questo è il loro significato:
Il parametro nomi host del server come localhost . Anche se richiesto, questo non è ancora dato seguito.
L'argomento del porto contiene la porta che fakemail si porrà in ascolto per le connessioni. Sarà in ascolto su questa porta finché non è processo viene ucciso. fakemail è un server INET completo e in grado di gestire più richieste simultanee. Nota È possibile connettersi alle porte inferiori alla 1024 se sei l'utente root.
Il percorso è la directory in cui la posta catturato sarà salvato. Il nome del file è l'indirizzo "a" della posta in arrivo con l'indice aggiunto. Per esempio la posta secondo mandato al "me @ qui" verrà salvato nel file "me@HERE.2"
Questo terminale è ora occupata, in modo da aprire un altro e connettersi con telnet alla porta che abbiamo scelto in precedenza ...
Se tutto funziona dovremmo vedere la risposta ...
Siamo in grado di inserire manualmente i comandi SMTP per simulare una spedizione di posta, anche se dobbiamo mandarli in ordine. I comandi sono "HELO" per avviare la sessione "MAIL From:", per impostare il mittente, "RCPT To:" per impostare la destinazione e "DATA" per il contenuto della mail stessa. Il comando "QUIT" termina la sessione. Ecco la conversazione completa con i nostri comandi in grassetto, ha dimostrato utilizzando la versione Perl (l'uscita dalla versione di Python è leggermente diversa, ma l'essenza è la stessa).
Dobbiamo inserire sia un ritorno a capo e un avanzamento riga per ogni riga di intestazione di posta, anche se la maggior telnet programmi lo farà automaticamente.
Dopo questa sequenza si può fermare il terminale fakemail con un Control-C per interrompere il processo. Perché abbiamo impostato la fakemail percorso della directory locale, dovremmo vedere un file denominato "you@There.1". Ecco il contenuto di quel file ...
Ora dovrebbe essere pronto per l'uso fakemail per rendere il test più semplice.
Un banco di prova tipico
Ho intenzione di utilizzare un SimpleTest (PHP) esempio qui, ma la traduzione di JWebUnit o HtmlUnit va dritto in avanti.
In primo luogo abbiamo bisogno di una pagina web per testare ...
Questo non è strettamente guidata Sviluppo di prova, naturalmente, ma le cose sono più facili da spiegare se mostro il primo script.
Poiché l'integrato PHP mail () funzione non consente di ignorare la porta, io sto usando la libreria PHPMailer . Questa libreria ha il proprio client SMTP di fare la scelta del porto facile da configurare. Sto prendendo la porta come parametro di forma in più, perché non sempre hanno la libertà di disabilitare mail transfer agent, mentre il test.
Ora il test case ...
Il punto principale del corso è che fakemail viene avviato e arrestato per ogni test utilizzando setup () e tearDown () . Oltre a tenere traccia degli ID di processo in modo da uccidere fakemail dopo ogni prova, abbiamo anche bisogno di cancellare le mail catturato. In caso contrario, la posta prossimo sarà salvato come marcus[MENTION=96546]last[/MENTION]craft.com.2 fare i nostri test uno irregolare. La directory locale deve essere wroteable dal server web per questo al lavoro.
L'unica parte difficile del test è il clickSubmit () linea. Ecco dove inviare il supplementare override parametro port per i test in modo che la posta viene inviata a fakemail piuttosto che l'agente di regolare trasferimento della posta.
Il test vero e proprio potrebbe essere migliorata da alcuni refactoring evidente. Creazione di un generico MailTestCase comporterebbe asserzioni più utile come assertMailText () e clickMailLink () per testare double opt-in. Per comodità di illustrazione, sto solo raccogliendo la posta catturato oltre a confermare il contenuto non è molto eccitante. Speriamo che i test proprio sarà molto più interessante.
FONTE:
fakemail è un server di posta falso che cattura e-mail come file di test di accettazione. Questo evita la configurazione eccessivo della creazione di un vero server di posta e cercando di estrarre i contenuti della coda di posta.
Ci sono due versioni di Fakemail, il primo scritto in Perl e il secondo scritto in Python. Le loro caratteristiche sono identiche. Manteniamo due versioni, semplicemente perché la versione Perl sarà più adatto per alcuni utenti, mentre la versione di Python sarà più adatto per gli altri.
Se avete avuto di testare le applicazioni che inviano e-mail, per esempio come parte di una rete processo di iscrizione, si sa che cosa un esercizio coinvolti e complicato che può essere. Di solito è necessario iscriversi con uno speciale indirizzo e-mail, la posta va al server di posta e quindi leggere nuovamente nel test con un POP / IMAP cliente. Ci sono parecchi lati negativi in questo approccio, è necessario installare software aggiuntivo per interagire con il server POP, si soffre di guasti spurio a causa di dipendenza da infrastrutture esterne, ed è molto molto lento.
Fakemail opere intercettando la posta prima di lasciare la macchina, sostituendo la tua Mail Transfer Agent (MTA). Si tratta di un semplice script eseguiti dalla riga di comando che è possibile lanciare dall'interno del quadro di prova.
Codice:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
Mail vengono semplicemente gettati in una directory a vostra scelta, ecco la una directory temporanea, completa di tutte le intestazioni di posta. In breve, il parametro port è la porta di ascolto inizialmente, il parametro host non è attualmente controllato e la bandiera di fondo dice fakemail per essere eseguito come un demone e per restituire l'ID di processo del processo distaccato.
Se hai già un server SMTP sul computer, allora si avrà sia bisogno di disattivarla per liberare la porta 25 o utilizzare un'altra porta. La seconda opzione significa che la libreria l'invio della posta deve avere la capacità di scegliere una porta diversa dalla 25 per una sorta di configurazione.
Installazione della versione di Perl
Non vi è alcuna installazione del programma fakemail sé, ma ha alcuni prerequisiti. Il primo è Perl stesso e al di là della distribuzione di base è inoltre necessario il CPAN modulo Net:: Server:: Mail:: SMTP . Una volta che Perl è installato è possibile installare questo modulo con ...
Codice:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
Per fakemail sé tutto ciò che dovete fare è scompattare il SourceForge tarball ed è pronto per l'esecuzione.
Installazione della versione di Python
Ci sono 3 pacchetti tra cui scegliere, a seconda del sistema operativo. Solo l'utilizzo del pacchetto sorgente saranno discussi qui (l'uso del pacchetto di Windows dovrebbe essere autoesplicativo). Scompattare il pacchetto, quindi eseguire il seguente comando:
Codice:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
Che installerà lo script fakemail.py nella posizione standard, probabilmente / usr / bin. È possibile installarlo da qualche altra parte, specificando l'opzione - prefix nel modo seguente (consigliato):
Codice:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
Test di installazione
Per confermare tutto funziona, si dovrebbe inviare una e-mail. Si noti che la versione Perl e Python hanno nomi leggermente diversi per garantire che si possono tranquillamente installare sia gli uni accanto agli altri.
Per avviare la versione Perl aprire un terminale e digitare:
Codice:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
Per avviare il tipo di versione di Python:
Codice:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
Tutti questi argomenti sono obbligatori.
Questo è il loro significato:
Il parametro nomi host del server come localhost . Anche se richiesto, questo non è ancora dato seguito.
L'argomento del porto contiene la porta che fakemail si porrà in ascolto per le connessioni. Sarà in ascolto su questa porta finché non è processo viene ucciso. fakemail è un server INET completo e in grado di gestire più richieste simultanee. Nota È possibile connettersi alle porte inferiori alla 1024 se sei l'utente root.
Il percorso è la directory in cui la posta catturato sarà salvato. Il nome del file è l'indirizzo "a" della posta in arrivo con l'indice aggiunto. Per esempio la posta secondo mandato al "me @ qui" verrà salvato nel file "me@HERE.2"
Questo terminale è ora occupata, in modo da aprire un altro e connettersi con telnet alla porta che abbiamo scelto in precedenza ...
Codice:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
Se tutto funziona dovremmo vedere la risposta ...
Codice:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
Siamo in grado di inserire manualmente i comandi SMTP per simulare una spedizione di posta, anche se dobbiamo mandarli in ordine. I comandi sono "HELO" per avviare la sessione "MAIL From:", per impostare il mittente, "RCPT To:" per impostare la destinazione e "DATA" per il contenuto della mail stessa. Il comando "QUIT" termina la sessione. Ecco la conversazione completa con i nostri comandi in grassetto, ha dimostrato utilizzando la versione Perl (l'uscita dalla versione di Python è leggermente diversa, ma l'essenza è la stessa).
Codice:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
Dobbiamo inserire sia un ritorno a capo e un avanzamento riga per ogni riga di intestazione di posta, anche se la maggior telnet programmi lo farà automaticamente.
Dopo questa sequenza si può fermare il terminale fakemail con un Control-C per interrompere il processo. Perché abbiamo impostato la fakemail percorso della directory locale, dovremmo vedere un file denominato "you@There.1". Ecco il contenuto di quel file ...
Codice:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
Ora dovrebbe essere pronto per l'uso fakemail per rendere il test più semplice.
Un banco di prova tipico
Ho intenzione di utilizzare un SimpleTest (PHP) esempio qui, ma la traduzione di JWebUnit o HtmlUnit va dritto in avanti.
In primo luogo abbiamo bisogno di una pagina web per testare ...
HTML:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
Questo non è strettamente guidata Sviluppo di prova, naturalmente, ma le cose sono più facili da spiegare se mostro il primo script.
Poiché l'integrato PHP mail () funzione non consente di ignorare la porta, io sto usando la libreria PHPMailer . Questa libreria ha il proprio client SMTP di fare la scelta del porto facile da configurare. Sto prendendo la porta come parametro di forma in più, perché non sempre hanno la libertà di disabilitare mail transfer agent, mentre il test.
Ora il test case ...
HTML:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
Il punto principale del corso è che fakemail viene avviato e arrestato per ogni test utilizzando setup () e tearDown () . Oltre a tenere traccia degli ID di processo in modo da uccidere fakemail dopo ogni prova, abbiamo anche bisogno di cancellare le mail catturato. In caso contrario, la posta prossimo sarà salvato come marcus[MENTION=96546]last[/MENTION]craft.com.2 fare i nostri test uno irregolare. La directory locale deve essere wroteable dal server web per questo al lavoro.
L'unica parte difficile del test è il clickSubmit () linea. Ecco dove inviare il supplementare override parametro port per i test in modo che la posta viene inviata a fakemail piuttosto che l'agente di regolare trasferimento della posta.
Il test vero e proprio potrebbe essere migliorata da alcuni refactoring evidente. Creazione di un generico MailTestCase comporterebbe asserzioni più utile come assertMailText () e clickMailLink () per testare double opt-in. Per comodità di illustrazione, sto solo raccogliendo la posta catturato oltre a confermare il contenuto non è molto eccitante. Speriamo che i test proprio sarà molto più interessante.
FONTE:
Perfavore,
Entra
oppure
Registrati
per vedere i Link!
Ultima modifica: