Skip to content

NEYouFan/ht-candywebcache-demo-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WebCache-Server(Demo版)

OverView

WebCache Demo Server是WebCache项目自带的一个简单的本地测试服务器,包含资源“上传”、“下载”、检查更新等主要功能。WebCache Demo Server主要服务于在应用WebCache SDK时,验证SDK应用是否成功,以及检验各项功能是否正常。下图简单描述了适应于些Demo Server的WebCache框架结构图:

环境说明

  • 安装python3.5

    Mac OS上自带python解析器,但需确保是python3.x,如果不是,需要更新至python3.x版本

这里不建议直接更新系统自带的python版本,可能会影响到你后续在使用python执行其他脚本时,出现python2.x与python3.x不兼容的问题。所以,简单点,直接安装python3.5后,不去更改原python的链接,而是新建一个链接指向可执行文件,如:python3,这样通过python3我们可以直接链向pytho3.5的目录,同时python命令仍然指向原系统版本。操作如下:

/Library/Frameworks/Python.framework/Versions/3.5
是它的默认安装路径,如果你的安装路径不是这个,需要相应改成你自己的安装路径

sudo ln -s /Library/Frameworks/Python.framework/Versions/3.5/bin/pydoc3.5 /usr/bin/pydoc3
sudo ln -s /Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5 /usr/bin/python3
sudo ln -s /Library/Frameworks/Python.framework/Versions/3.5/bin/pythonw3.5 /usr/bin/pythonw3
sudo ln -s /Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5m-config /usr/bin/python-config3
  • 下载Demo-Webcache-Server包。解压之后目录结构如下:

  • packages_dema目录下是webcache-server相关的python脚本。可以进入此目录,直接通过下面命令启动server:

    python3 http_server.py
    

    同时,需要更改测试的App(CCDemo)中的webcache server地址

    config.serverAddress = @"127.0.0.1:8080";
    

    首次启动server,会在此目录下创建一个本地的DB文件,此DB是用来存储上传res的版本信息的

  • upload_tools目录下面,包含upload.py,用来模拟本地“上传”操作

    ```
    python3 upload.py
    ```
    
    如果之前没有安装过python的**requests**和**pycrypto**模块的话,需要先安装这两个模块。
    
    ```
    sudo python3 -m pip install requests
    sudo python3 -m pip install pycrypto
    ```
    
    如果在使用pip安装时,有问题,可以参考[同时装了Python3和Python2,怎么用pip](https://www.zhihu.com/question/21653286)
    
  • test_packages目录下,包含几个测试用的资源包。

  • 文件下载server。通过python提供的SimpleHTTPServer module,直接在本地启动一个httpServer,将文件目录映射到本地的某一目录,这里为了统一和方便,请确保运行SimpleHTTPServer的目录与upload.py保持在同一路径

    cd .../upload_tools
    python -m SimpleHTTPServer
    

upload-tool使用说明

这里,“上传”只是模拟的本地上传行为,即资源包会拷到SimpleHttpServer所映射的文件目录下,然后执行一次upload的http请求,将对应res包的版本信息更新到DB里面去。

  • 在upload-tool文件夹下,运行python -m SimpleHTTPServer(确保在SimpleHTTPServer的运行路径与upload-tool相同,否则不保证后续操作的正确性)

  • 在Demo-Webcache-Server/packages_dema下,运行python http_server.py

  • 生成资源zip包

  • 修改upload.py脚本,指明需要“上传”的本地资源zip包的路径,resID,resVersion(请自行确保resID,resVersion, zipPath,domain的正确性)。

     config_items = {
     "resID": "login",  			//资源ID,可根据自己的res进行修改
     "resVersion": "20160321",	//资源版本,每次更新版本上传时要修改
     "appID": "kaola", 			//资源所在的appID,首次配置app资源时修改
     "domain": "www.baidu.com,www.163.com", //资源命中的domains,每次改变都需要修改
     "zipPath": "/Users/hzhehui/workspace/web-cache/test/login_20160321.zip",	//待上传资源包的本地地址
     }
    
  • 执行python3 upload.py,完成上传“请求”

上传成功的结果描述:

  • upload.py输出打印信息:{"data": {"insert_cnt": 1}, "errMsg": "ok", "code": 200}
  • upload_tools/packages目录下出现对应的资源包以及diff包
  • DB中的versionInfo表中会增加一条新的记录

Demo-Server测试

运行集成web-Cache的App,通过上述upload-tool一节描述的资源上传方式,进行一次资源的上传(红色标注表明在执行上传upload脚本时,需要更改的项)。

如:

config_items = {
    "resID": "login",
    "resVersion": "20160702",
    "appID": "kaola",
    "domain": "www.baidu.com,www.163.com",
    "zipPath": "/Users/h zhehui/workspace/web-cache/test/login_20160702.zip"
}

1.配好上述资源包login_20160702.zip后,更改resID、resVersion、appID、domain、zipPath,通过upload.py模拟上传。

2.打开类似Charles等抓包工具抓包。启动App。这时可以看到api/version_check/webapp的请求,对应的response:

{
	"data": {
	"resInfos": [
  	{
    	"userData": "{\"domains\": [\"www.baidu.com\", \"www.163.com\"]}",
    	"fullMd5": "13c118e8c0284c0f968883a554bb9dd0",
    	"resID": "login",
    	"state": 3,
    	"resVersion": "20160702",
    	"fullUrl": "http://localhost:8000/packages/login_20160702.zip"
	}]
	},
	"code": 200,
	"errMsg": "OK"
}

3.可以再进行一次资源更新的测试:

	config_items = {
	    "resID": "login",
	    "resVersion": "20160703",
	    "appID": "kaola",
	    "domain": "www.baidu.com,www.163.com",
	    "zipPath": "/Users/hzhehui/workspace/web-cache/test/login_20160703.zip",
	    "root_url": "http://localhost:8000/packages"
	}

配好新的资源包login_20160703.zip,更改resID、resVersion、appID、domain、zipPath,执行upload.py,模拟上传。

4.可再次启动App,这时可以看到api/version_check/webapp的请求,对应的response:

{
  "data": {
    "resInfos": [
      {
        "userData": "{\"domains\": [\"www.baidu.com\", \"www.163.com\"]}",
        "fullMd5": "9c5a25ced1728d78518e096e9a00bdfb",
        "resID": "login",
        "diffMd5": "5250bcf52d7e259bc4cdd0a12cc059e9",
        "resVersion": "20160703",
        "fullUrl": "http://localhost:8000/packages/login_20160703.zip",
        "diffUrl": "http://localhost:8000/packages/login.diff",
        "state": 1
      }
    ]
  },
  "code": 200,
  "errMsg": "OK"
}

About

CandyWebCache测试服务器

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages