其实,我们可以使用纯Python语言来实现WEB,那么在实现之后还是需要对这一功能进行相关测试。在这里我们就会通过一定的方法来进行Python实现WEB的测试,希望大家可以以此为学习参考对象。#t#
Python实现WEB测试环境:
服务器配置: 4 x Intel(R) Xeon(R) CPU E5405 @ 2.00GHz, 4G内存, 操作系统: CentOS 5.3 x86_64
nginx前端 + 4 tornado(0.2) web process
tornado: http://www.tornadoweb.org (已被墙)
Python实现WEB测试场景:
http get请求,服务器端直接返回"hello world"
Python实现WEB代码及nginx配置:
- main.py:
- #!/usr/bin/python
- # -*- coding: utf-8 -*-
- """web main"""
- from tornado.httpserver import HTTPServer
- from tornado.ioloop import IOLoop
- from tornado.web import RequestHandler, Application, authenticated
- #from rockps.auth import AuthHandler
- class MainHandler(RequestHandler):
- def get(self):
- self.write("hello world")
- settings = {
- }
- application = Application([
- (r"/", MainHandler),
- ], **settings)
- if __name__ == "__main__":
- http_server = HTTPServer(application)
- http_server.listen(8081)
- IOLoop.instance().start()
- nginx.conf:
- user root;
- worker_processes 1;
- error_log /var/nginx_error.log;
- pid /var/run/nginx.pid;
- events {
- worker_connections 51200;
- use epoll;
- }
- http {
- # Enumerate all the Tornado servers here
- upstream frontends {
- server 127.0.0.1:8081;
- server 127.0.0.1:8082;
- server 127.0.0.1:8083;
- server 127.0.0.1:8084;
- }
- #include /etc/nginx/mime.types;
- default_type application/octet-stream;
- access_log /var/log/nginx/access22.log;
- keepalive_timeout 65;
- proxy_read_timeout 200;
- sendfile on;
- tcp_nopush on;
- tcp_nodelay on;
- gzip on;
- gzip_min_length 1000;
- gzip_proxied any;
- gzip_types text/plain text/html text/css text/xml
- application/x-javascript application/xml
- application/atom+xml text/javascript;
- # Only retry if there was a communication error, not a timeout
- # on the Tornado server (to avoid propagating "queries of death"
- # to all frontends)
- proxy_next_upstream error;
- server {
- listen 8085;
- # Allow file uploads
- client_max_body_size 50M;
- location ^~ /static/ {
- root /var/www;
- if ($query_string) {
- expires max;
- }
- }
- location = /favicon.ico {
- rewrite (.*) /static/favicon.ico;
- }
- location = /robots.txt {
- rewrite (.*) /static/robots.txt;
- }
- location / {
- proxy_pass_header Server;
- proxy_set_header Host $http_host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Scheme $scheme;
- proxy_pass http://frontends;
- }
- }
- }
以上就是对Python实现WEB的相关测试方法。