Testing: Difference between revisions

From LemonWiki共筆
Jump to navigation Jump to search
(37 intermediate revisions by the same user not shown)
Line 1: Line 1:


== troubleshooting steps for connection test ==
== Test connectivity for the web service ==
find the problem occurred: (1) local service at the server (localhost) (2) from LAN to server (3) from WAN to server
[[Test connectivity for the web service]]
 
 
=== (1) local service ===
WAN &#9675; -------&gt; &#9675; LAN -------&gt; <span style="color:red">&#9679; server</span>
 
Testing on localhost if you have the administrative permission to manage the server.
* Check if your computer/server Is being assigned the IP Address.
** {{Linux}}: (1) Check the IP Address. {{kbd | key = ifconfig}}. (2) Re-assign the IP Address and restart the networking service. {{kbd | key = service network restart}} for CentOS<ref>[http://askubuntu.com/questions/230698/how-to-restart-the-networking-service How to restart the networking service? - Ask Ubuntu]</ref>
** {{Win}}: Check the IP Address. {{kbd | key = ifconfig/all}}
** More on [[Network problem]]
* Is service alive? Is the port occupied by other process?
** {{Linux}}
*** [http://linux.die.net/man/1/nmap nmap] "Network exploration tool and security / port scanner." e.g. {{kbd | key = <nowiki>nmap -p 80,443 ip</nowiki>}}
*** [http://linux.die.net/man/8/ss ss] "utility to investigate sockets" e.g. {{kbd | key = <nowiki>ss -tnlp | grep 80</nowiki>}} or using OR operator<ref>[http://www.thegeekstuff.com/2011/10/grep-or-and-not-operators/ 7 Linux Grep OR, Grep AND, Grep NOT Operator Examples]</ref> {{kbd | key = <nowiki>ss -tnlp | grep '80\|443'</nowiki>}}
*** [http://linuxcommand.org/man_pages/ps1.html ps] List the current processes. Input {{kbd | key = <nowiki>ps -aux | grep "PORT_NUMBER"</nowiki>}} e.g. {{kbd | key = <nowiki>ps -aux | grep 443</nowiki>}}
** {{Win}} Using the software [http://www.nirsoft.net/utils/cports.html CurrPorts] to check the process and port. e.g. Apache will not running if the 80 port was occupied by skype<ref>[http://stackoverflow.com/questions/4705005/how-to-solve-wamp-and-skype-conflict-on-windows-7 How to solve WAMP and Skype conflict on Windows 7? - Stack Overflow]</ref>.
* Is the port open to external users? OS firewall or protected by antivirus software.
** {{Linux}}
*** [http://linux.die.net/man/8/iptables iptables]: (1) {{kbd | key = iptables -L}} to list all rules<ref>[http://wiki.centos.org/HowTos/Network/IPTables HowTos/Network/IPTables - CentOS Wiki]</ref> (2) rule with smaller line-number will override the rule with larger line-number<ref>[https://fedoraproject.org/wiki/How_to_edit_iptables_rules?rd=User_talk:Rforlot How to edit iptables rules - FedoraProject]</ref>
*** [https://fedoraproject.org/wiki/FirewallD FirewallD] rules: (1) {{kbd | key = <nowiki>sudo firewall-cmd --get-default-zone</nowiki>}} return 'public' (2) {{kbd | key = <nowiki>sudo firewall-cmd --list-all --zone=public</nowiki>}}<ref>[https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-using-firewalld-on-centos-7 How To Set Up a Firewall Using FirewallD on CentOS 7 | DigitalOcean]</ref> (3) Allow port with FirewallD
*** [http://linux.die.net/man/8/semanage SELinux Policy Management]:  (1) After installed {{kbd | key =policycoreutils-python}}<ref>[http://sharadchhetri.com/2014/10/07/semanage-command-found-centos-7-rhel-7/ semanage command not found on CentOS 7 and RHEL 7]</ref>, input {{kbd | key = <nowiki>semanage port -l</nowiki>}} to list open ports. (2) Allow port with semanage.
** {{Win}} [https://technet.microsoft.com/en-us/library/cc754274.aspx?f=255&MSPPError=-2147217396 Windows Firewall with Advanced Security] -> configure firewall rules
** protected by antivirus software?
* connect to localhost ex: {{kbd | key= telnet 127.0.0.1 23}} where 23 is the port number where the service running
** [https://technet.microsoft.com/en-us/library/cc771275(v=ws.10).aspx Install Telnet Client] on {{Win}}
** if the local service is web server, you can also try  {{kbd | key = <nowiki>lynx http://127.0.0.1</nowiki>}} for {{Linux}}
* double [[Testing#check_the_server.2Fservice_logs | check the server/service logs]]
 
=== (2) from LAN to server ===
WAN &#9675; -------&gt; <span style="color:red">&#9679; LAN -------&gt; &#9679; server</span>
 
* testing on LAN (local network, subnet scope): Is service alive? The different servers between LAN or with the same ip class (ex: 1.2.3.*) may not have the firewall limit.
** connect to localhost ex: {{kbd | key= telnet 172.18.0.1 23}} (1) IP start with 172.18... is [http://www.itcom.itd.umich.edu/backbone/umnet/privateIP.html Private IP Network Numbers] (2) where 23 is the port number where the service running
*** If the local service is web server, you can also try to connect the internal ip e.g. {{kbd | key = <nowiki>lynx http://172.18.0.1</nowiki>}} for {{Linux}}
* double [[Testing#check_the_server.2Fservice_logs | check the server/service logs]]
 
=== (3)  from WAN to server ===
<span style="color:red">WAN &#9679; -------&gt; &#9679; LAN -------&gt; &#9679; server</span>
 
We met the trouble on WAN (wide area network). If we do no have the administrative permission, the tests we can do as follows:
*  [http://downforeveryoneorjustme.com/ Down for everyone or just me?] more on [[Web_Ping#同時從世界各處測試網站連線 | Web Ping]]
* Switch to different ISP? Is hardware firewall enabled?
* Is gateway alive?
* Is DNS alive?
* Is the external IP correct?
** If the firewall rule is IP specified, verify the IP if correct from [http://whatismyipaddress.com/ What Is My IP Address?] or web access log.
 
other issue:
* bandwidth cost too much by certain users
* exceed the request limit of (hardware) firewall
* the external connection of updated Windows was down until reboot {{Win}}
* Amazon EC2 security group
* refresh browser cache: [http://refreshyourcache.com/en/cache/ Refresh your cache - When hitting F5 just isn't enough!]
 
== connection test ==
=== case 1: Access the server from outside network ex: WAN ===
Where are you? Access the server from outside network ex: Wide Area Network (WAN) or Local Area Network (LAN)
 
open the browser from outside network ex: Wide Area Network (WAN) or Local Area Network (LAN)
* and type the address: {{kbd | key =<nowiki>http://the.domain</nowiki>}} {{exclaim}} Note: Not [https://en.wikipedia.org/wiki/Private_network Private network] / Private IP address
* or use the remote website monitoring services: [[Web Ping]]
 
telnet
* telnet ''DOMAIN_or_IP'' ''PORT'' ex: {{kbd | key = telnet the.domain 80}}
** If connected. The console windows will show the message "Escape character is '^]'. " for {{Linux}}. Or show a blank window for {{Win}} If you want to end the telnet command. You can (1) press {{Kbd plus | key1 = Ctrl | key2 = ]}} and (2) keyin {{Kbd | key = quit}} to end the telnet.
** If failed. It will show the message: "telnet: Unable to connect to remote host: Connection refused"
 
tools
# [http://check-host.net/ Check server: Check host - online website monitoring, Check IP] "checks the possibility of a TCP connection to host's specified port from different locations around the world." quoted from website. {{access | date=2015-08-02}}
 
=== case 2: Access the server from inside ex: localhost or Local LAN ===
If you has permission to log in the server via SSH or Remote desktop service.
* (1)open the browser, (2)type the address: {{kbd | key = <nowiki>http://127.0.0.1</nowiki> }}
* [http://www.canyouseeme.org/ Open Port Check Tool]: ''Using browser'' to check the specified port of local machine from canyouseeme.org. {{exclaim}} it may returned wrong result if the server hosted with shared external IP
* Linux command:
*# (optional if lynx was not installed) {{kbd | key = <nowiki>yum install lynx</nowiki>}} for CentOS / {{kbd | key = <nowiki>sudo apt-get install lynx</nowiki>}} for Ubuntu<ref>[http://www.addictivetips.com/ubuntu-linux-tips/install-and-use-lynx-on-ubuntu/ Install and Use Lynx Browser on Ubuntu]</ref>
*# {{kbd | key = <nowiki>lynx http://127.0.0.1</nowiki>}} <ref>[http://lynx.isc.org/lynx2.8.7/lynx2-8-7/lynx_help/Lynx_users_guide.html Lynx Users Guide v2.8.7]</ref> for {{Linux}}
 
telnet
# {{kbd | key = telnet 127.0.0.1 80}}
# (after telnet-ed the web 80 port, key in) {{kbd_plus | key1 = get | key2 = SPACE}}
# more on [http://www.simplescripts.de/http-check-port-80-telnet-command.htm HTTP Check Port 80 with the Telnet Command]
 
netstat ex: find MySQL 3306 port
# {{kbd | key = <nowiki>netstat -a | find "3306"</nowiki>}} (note: require the '''double quote''' symbol, not single quote symbol) for {{Win}}<ref>[http://technet.microsoft.com/en-us/library/bb490947.aspx Netstat]</ref> or {{kbd | key = <nowiki>netstat -npl | grep 3306</nowiki>}}<ref>[http://www.cyberciti.biz/faq/find-out-which-service-listening-specific-port/ Linux / UNIX Find Out What Program / Service is Listening on a Specific TCP Port]</ref> for {{Linux}}
# more on [http://www.techrepublic.com/blog/security/list-open-ports-and-listening-services/443 List open ports and listening services]
 
tools
# {{Gd}} [http://www.nirsoft.net/utils/cports.html CurrPorts: Monitoring TCP/IP network connections on Windows]
# [http://portforward.com/help/portcheck.htm PFPortCheck Program]: check TCP/UDP port from localhost(where you installed the program) to portforward.com
# [http://technet.microsoft.com/en-us/sysinternals/bb897437 TCPView for Windows]
 
 


== user client node ==
== user client node ==
Line 105: Line 12:
* Clear browser cache by [http://en.wikipedia.org/wiki/Wikipedia:Bypass_your_cache Bypass your cache] ([http://zh.wikipedia.org/wiki/Help:%E7%BB%95%E8%BF%87%E6%B5%8F%E8%A7%88%E5%99%A8%E7%BC%93%E5%AD%98 繞過瀏覽器快取])
* Clear browser cache by [http://en.wikipedia.org/wiki/Wikipedia:Bypass_your_cache Bypass your cache] ([http://zh.wikipedia.org/wiki/Help:%E7%BB%95%E8%BF%87%E6%B5%8F%E8%A7%88%E5%99%A8%E7%BC%93%E5%AD%98 繞過瀏覽器快取])
** Client temporary files
** Client temporary files
** [https://www.technipages.com/google-chrome-how-to-completely-disable-cache Google Chrome: How to Disable Cache]
* Clear server cache ex: [http://www.smarty.net/manual/en/caching.php Smarty Caching]
* Clear server cache ex: [http://www.smarty.net/manual/en/caching.php Smarty Caching]


==== online IDE ====
==== Online IDE ====
* code snippet web-based editor  / communication tools between developers/designers
[[Programming online (Online IDE)]]
** [http://codepad.org/ codepad] {{access | date=2012-10-02}} {{access | date = 2014-10-07}}
** [http://cssdesk.com/ CSSDesk] HTML, CSS {{access | date=2013-02-11}}
** [http://dabblet.com/ The first commented line is your dabblet’s title ✿ dabblet.com]: view the [http://dabblet.com/gist/2779082 sample] of html and css {{access | date = 2012-08-22}}
** [http://ideone.com/ Ideone.com] "Online IDE & Debugging Tool >> C/C++, Java, PHP, Python, Perl and 40+ compilers and interpreters"
** [http://jsbin.com/ JS Bin - Collaborative JavaScript Debugging]: HTML, CSS, Javascript<ref>[http://blog.miniasp.com/post/2013/06/30/Useful-tool-JS-Bin-Collaborative-JavaScript-Debugging.aspx The Will Will Web - 介紹好用工具:JS Bin ( 網站前端工程師的學習利器 )]</ref>
** [http://jsfiddle.net/ jsFiddle] {{access | date = 2014-10-07}}
** [http://plnkr.co/ Plunker] {{access | date = 2014-10-07}}
* database testing
** [http://ideone.com/ Ideone.com] support SQL {{exclaim}} not support REGEXP function {{access | date = 2015-03-09}}
** [http://sqlfiddle.com/ SQL fiddle] support MySQL, MS SQL server, Oracle, PostgreSQL, SQLite ...  {{exclaim}} data may not showed in couple days {{access | date = 2015-03-09}}
 
* Save or share source codes
** [http://pastie.org/ Pastie] with syntax highlighting
** [http://pastebin.com/ Pastebin.com - #1 paste tool since 2002!]
** [http://tny.cz/ Tinypaste - The easiest way to host your text]


=== browser plug-ins issue ===
=== browser plug-ins issue ===
Line 143: Line 36:
Modify the following files if you want to test the domain name before the mapping of domain name and ip was changed really
Modify the following files if you want to test the domain name before the mapping of domain name and ip was changed really
* C:\WINDOWS\system32\drivers\etc\hosts for {{win}} XP, Win7<ref>[http://tommy.ironman.tw/windows-7-vista-hosts-error/ Azan 黃贊臣 » 在Windows 7 或 Vista 中修改hosts檔的方法]</ref>, Win 10 & Windows Server 2008 R2 Standard
* C:\WINDOWS\system32\drivers\etc\hosts for {{win}} XP, Win7<ref>[http://tommy.ironman.tw/windows-7-vista-hosts-error/ Azan 黃贊臣 » 在Windows 7 或 Vista 中修改hosts檔的方法]</ref>, Win 10 & Windows Server 2008 R2 Standard
* C:\WINNT\system32\drivers\etc\hosts for Windows 2003 server
* On Windows 2003 server: edit the file located at {{kbd | key=<nowiki>C:\WINNT\system32\drivers\etc\hosts</nowiki>}}
* {{kbd | key=<nowiki>/etc/hosts</nowiki>}} for {{Linux}}
* On {{Linux}}, input the command {{kbd | key=<nowiki>sudo vi /etc/hosts</nowiki>}}
<pre>
<pre>
127.0.0.1      localhost
127.0.0.1      localhost
# ip            domain.com
# ip            domain.com
</pre>
</pre>
* {{kbd | key=<nowiki>/private/etc/hosts</nowiki>}}  for {{Mac}} <ref>[https://www.tekrevue.com/tip/edit-hosts-file-mac-os-x/ How to Edit the Hosts File on Mac OS X - TekRevue]</ref>
* On {{Mac}}, input the command {{kbd | key=<nowiki>sudo vi /private/etc/hosts</nowiki>}} <ref>[https://www.tekrevue.com/tip/edit-hosts-file-mac-os-x/ How to Edit the Hosts File on Mac OS X - TekRevue]</ref>




Line 208: Line 101:
==== MySQL ====
==== MySQL ====
[http://dev.mysql.com/doc/refman/5.1/en/server-logs.html MySQL Server Logs]:  
[http://dev.mysql.com/doc/refman/5.1/en/server-logs.html MySQL Server Logs]:  
* step1: enable logging /var/log/mysql.log (location was set up in the configuration file /etc/my.cnf or my.ini) <ref>[http://blog.longwin.com.tw/2005/10/mysql_query_slow_find/ 找出 MySQL 哪些 Query 速度較慢 | Tsung's Blog]</ref>
* step1: verify the system variable<ref>[https://dev.mysql.com/doc/refman/5.7/en/show-variables.html MySQL :: MySQL 5.7 Reference Manual :: 13.7.5.39 SHOW VARIABLES Syntax]</ref>
<pre>
mysql> SHOW VARIABLES LIKE '%general_log%';
mysql> SHOW GLOBAL VARIABLES LIKE '%general_log%';
</pre>
* step2: enable logging /var/log/mysql.log (location was set up in the configuration file /etc/my.cnf or my.ini) <ref>[http://blog.longwin.com.tw/2005/10/mysql_query_slow_find/ 找出 MySQL 哪些 Query 速度較慢 | Tsung's Blog]</ref>
<pre>
<pre>
[mysqld]  
[mysqld]  
Line 222: Line 120:
</pre>
</pre>


* step2: restart MySQL service
* step3: restart MySQL service
 


==== Microsoft SQL Server ====
==== Microsoft SQL Server ====
Line 276: Line 173:
* [http://help.trello.com/article/736-troubleshooting-browser-issues-with-trello Troubleshooting browser issues with Trello - Trello Help] {{access | date = 2017-03-28}}
* [http://help.trello.com/article/736-troubleshooting-browser-issues-with-trello Troubleshooting browser issues with Trello - Trello Help] {{access | date = 2017-03-28}}
* [https://asana.com/guide/help/faq/connectivity Supported browsers and troubleshooting steps for Asana | Product guide · Asana] {{access | date = 2017-03-28}}
* [https://asana.com/guide/help/faq/connectivity Supported browsers and troubleshooting steps for Asana | Product guide · Asana] {{access | date = 2017-03-28}}
* [https://ngrok.com/ ngrok - secure introspectable tunnels to localhost] {{access | date = 2020-02-20}}


{{Template:Build a website}}
{{Template:Build a website}}

Revision as of 18:12, 23 March 2022

Test connectivity for the web service

Test connectivity for the web service

user client node

browser & device issue

Online IDE

Programming online (Online IDE)

browser plug-ins issue

e-mail testing issue

Email testing

monitoring the status or changes of files or registry

monitoring or generating the HTTP request sent to the server

HTTP request and response data tool

domain name issue

Modify the following files if you want to test the domain name before the mapping of domain name and ip was changed really

  • C:\WINDOWS\system32\drivers\etc\hosts for Win Os windows.png XP, Win7[1], Win 10 & Windows Server 2008 R2 Standard
  • On Windows 2003 server: edit the file located at C:\WINNT\system32\drivers\etc\hosts
  • On Linux Os linux.png , input the command sudo vi /etc/hosts
127.0.0.1       localhost
# ip            domain.com
  • On Mac icon_os_mac.png , input the command sudo vi /private/etc/hosts [2]


Clear the DNS cache

more on DNS checking

handling form data

before submit the form data

  • (1)Use the Web Developer plugin for Firefox browser_firefox.png and (2)Menu -> Forms -> Display form details

after submit the form data


login issues into different accounts

If you need to clear the cookie frequently for the testing account issue

  • Using the privacy browsing for Firefox browser_firefox.png & Chrome Browser chrome.png . Each time you turning on the privacy browsing, the logged status and cookie will not saved.[3]
  • Manually clear cookie and temporary files of browser

file upload

excel format compatibility

Using Microsoft Excel Viewer to check the excel format compatibility. Icon_exclaim.gif It's not save to check the excel file only by using the old version of Excel.


database issue

  • SQL
    • SQL Fiddle support MySQL, MS SQL, Oracle, PosgreSQL, SQLite ... Good.gif

server environment

Testing server environment

local server node (if you has permission to log in the server via SSH or Remote desktop service)

check the server/service logs

OS

Microsoft Windows

Web server

Apache

Apache HTTP server log: /etc/httpd/logs (location was set up in the configuration file /etc/httpd/conf/httpd.conf)

  • access.log
  • error.log - record when the apache service restarted/stopped

Using grep command to search the logs: grep -ir "string to search" /path/to/directory. More on Search text in files

IIS

Microsoft Internet Information Services (IIS) log (記錄檔)[4]

  • C:\WINDOWS\system32\LogFiles\

Database server

MySQL

MySQL Server Logs:

  • step1: verify the system variable[5]
mysql> SHOW VARIABLES LIKE '%general_log%';
mysql> SHOW GLOBAL VARIABLES LIKE '%general_log%';
  • step2: enable logging /var/log/mysql.log (location was set up in the configuration file /etc/my.cnf or my.ini) [6]
[mysqld] 
## includes all SQL queries/commands
# general_log = 1
# general_log_file="general_log_file.log"
log-error=/var/log/mysql/error.log
log-slow-queries = /var/log/mysql/mysql-slow.log
#another syntax
#slow_query_log_file = mysql-slow.log
long_query_time = 1
log-long-format
  • step3: restart MySQL service

Microsoft SQL Server

Other

PHP

PHP_errors#logging

Java

System.out.println("Boston, We Have A Problem" + variable); //output to Tomcat consile
out.println("Boston, We Have A Problem" + variable); //output to JSP webpage

or using NetBeans IDE - Debugger and Profiler to setup the breakpoints.

console command

//write the console output to the file
command > log.txt

//append to the same file
command >> log.txt

find match string

Owl icon.jpg If the message text or code snippets was not found in the plain text files, it may stored in the database.

related topic

related terms

  • functional testing

templates

references

further reading


Web site design and development process