美文网首页
从0构建自动化测试平台(二)WEB服务器构建

从0构建自动化测试平台(二)WEB服务器构建

作者: 金飞 | 来源:发表于2017-05-02 10:52 被阅读66次

    回顾

    在第一篇文章中,介绍了技术选型:从0构建自动化测试平台(一)之技术选型

    接下来就要开始和大家分享具体的产品实现,在此之前我还是想聊一下测试对编程语言的掌握程度,或者说是熟悉程度,主要是和开发的区别,简单说就是:用到哪里学哪里;没有一定要求对编程语言进行系统的学习,在我看来如果系统学习一下这些大把的语言(Node.js、python、html、css、js),就有可能出现还没开始呢,就已经放弃了!我也曾经一度的在针扎和反省:我这样不是在浪费生命吗?对于基础不好的我来说系统学习一门编程语言是无聊+痛苦的,(虽然懂了之后就很简单,但过程还是比较痛苦)系统学习有点像学校里面的学习模式,从第一章学习到最后一章,完了之后还是不会,这就出现了还没开始呢就已经放弃了的悲剧,这也是符合2/8原则的:80%有用的内容,在20%的章节里面。简单总结我的个人经验:

    • 掌握基本的语法,大概在书的1-2章里面,就可以飘过了;

    • 在碰到需要用到的地方,专门攻坚下,看一些案例,最好的方法是:利用身边的资源帮你讲解,这里可能是你的同事、朋友、甚至是你的wife🙃;

    • 善于利用搜索引擎,技术性方面的基本上是google解决(非常好的google访问方法);

    • 阅读官方或者别人的源代码,能看懂最好,看不懂会用也行;

    • 推荐一个教程:菜鸟教程

      当然了,以上的学习也是有弊端的,会让你的进度一开始变的非常的慢,因为你要边学习边coding,但是每天进步一点点,别有一番滋味,不管怎么样,至少有一个好的开始,以上学习方法仅供参考,如果你具有较强的开发能力请无视。

      我就是一个从0基础开始的测试,所以不用担心,你也可以。

      好了,说完了简(gao)易(duan)的学习方法,就可以开始今天的话题了:WEB服务器构建之Node.js+Express,直接进入主题:

    Express 简介

    Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具。
    使用 Express 可以快速地搭建一个完整功能的网站。
    Express 框架核心特性:

    • 可以设置中间件来响应 HTTP 请求。
    • 定义了路由表用于执行不同的 HTTP 请求动作。
    • 可以通过向模板传递参数来动态渲染 HTML 页面。

    安装 Express

    安装 Express 并将其保存到依赖列表中:

    $ npm install express --save
    

    以上命令会将 Express 框架安装在当前目录的 node_modules 目录中, node_modules 目录下会自动创建 express 目录。以下几个重要的模块是需要与 express 框架一起安装的:

    • body-parser - node.js 中间件,用于处理 JSON, Raw, Text 和 URL 编码的数据。
    • cookie-parser - 这就是一个解析Cookie的工具。通过req.cookies可以取到传过来的cookie,并把它们转成对象。
    • multer - node.js 中间件,用于处理 enctype="multipart/form-data"(设置表单的MIME编码)的表单数据。
    $ npm install body-parser --save
    $ npm install cookie-parser --save
    $ npm install multer --save
    

    安装完后,我们可以查看下 express 使用的版本号:

    $ npm list express
    └── express@4.13.4
    

    Express 框架实例

    接下来我们使用 Express 框架来构建WEB服务。
    我们引入了 express 模块,并在客户端发起请求后,输出对应的响应。
    创建 app.js 文件,代码如下所示:
    app.js 文件代码:

    //app.js 文件
    var express = require('express')
        ,path = require('path')
        ,fs = require('fs')
        ,logger = require('morgan')
        ,methodOverride = require('method-override')
        ,session = require('express-session')
        ,cookieParser = require('cookie-parser')
        ,bodyParser = require('body-parser')
        ,errorHandler = require('errorhandler')
        ,multer = require('multer')
        ,url = require("url")
        ,app = express();
    // all environments
    app.set('port', process.env.PORT || 8089);
    app.set('view engine', 'pug'); //设置模板引擎
    app.set('views', path.join(__dirname, '/res/app/views')); //设置模板引擎相对路径(相对当前目录)
    app.use(express.static(path.join(__dirname, 'static'))); //设置静态文件目录
    app.use(session({
        resave: true,
        saveUninitialized: true,
        secret: 'uwotm8'
    }));
    app.use(cookieParser());
    
    app.use(bodyParser.urlencoded({
        extended: false
    }));
    app.use(bodyParser.json());
    
    /* 访问主页*/
    app.get('/', function (req, res) {
        res.render('home');
    });
    
    /* Listen端口*/
    var server = app.listen(app.get('port'), function () {
        var host = '127.0.0.1';
        console.log("访问地址:http://%s:%s", host, app.get('port'));
    });
    
    /* http服务器监听error事件*/
    server.on('error', function (err) {
        // 端口被占用
        if (err.code == 'EADDRINUSE') {
            console.log('port [%s] is used, please change other port.', app.get('port'))
        }
    });
    

    app.js基本内容就是以上内容了,接下来要在/res/app/view目录下创建home.pug,里面的内容就是你主页的具体内容。
    执行以上代码:

    $ node app.js 
    INF/app.js 93151 [*] 访问地址:http://127.0.0.1:8089
    

    就这样,我们完成Node.js的服务器搭建。

    补充说明:

    1、app.set('view engine', 'pug'); //设置模板引擎
    以上需要安装pug,和express的安装一样,

    npm install pug
    

    这里我是用package.json来管理的,里面的内容是:

    {
      "name": "kmtestplatform",
      "version": "0.0.1",
      "dependencies": {
        "body-parser": "~1.15.2",
        "cookie-parser": "1.4.3",
        "errorhandler": "^1.1.1",
        "express": "~4.13.4",
        "express-session": "^1.7.2",
        "pug": "^2.0.0-beta12",
        "method-override": "^2.1.2",
        "morgan": "^1.2.2",
        "multer": "~1.1.0",
        "rethinkdbdash": "2.3.19",
        "serve-favicon": "^2.0.1",
        "rethinkdb": "^2.2.0",
        "debug": "0.7.4",
        "chalk": "~1.1.1"
      }
    }
    

    如果有了package.json管理依赖库就比较简单了,只要在package.json目录下执行npm install,就会自动安装对应的依赖,部署到生产环境下就变的比较方便了。
    2、express+node.js的搭建我参考的是菜鸟教程nodejs-express-framewor,里面有非常详细的介绍。

    3、相关资料
    Express官网
    [Express4.x API 中文版](Express4.x API Chinese)
    Express4.x API

    有任何问题可以通过微信找到我,欢迎大家一起交流关于测试方面的问题。


    相关文章

      网友评论

          本文标题:从0构建自动化测试平台(二)WEB服务器构建

          本文链接:https://www.haomeiwen.com/subject/phdctxtx.html