2B4G项目需要做一些线下的压力测试
来源:互联网 发布:java erp系统源码下载 编辑:程序博客网 时间:2024/06/02 05:05
原文:2B4G项目需要做一些线下的压力测试
一、登陆桩做什么?
2B4G项目需要做一些线下的压力测试,主要是针对新增的一些模块的性能进行测评,所以需要提供一个模拟登陆服务的桩以Support这个测评工作。登陆桩它是个Mock的登陆服务,在接收到登陆请求以后,模拟真实的登陆服务,构造一个认证后的串作为响应报文返回,达到模拟登陆的目的。2B4G
二、登陆桩该怎么做?
根据上面对登陆桩需求的分析,我们可以把登陆桩的实现划分如下:
1. 监听服务:建立一个TCP连接,在指定端口监听登陆请求;
2. 解析请求包:收到的请求包是按照一定格式压缩加密而来的,桩需要对其解密解压缩把我们需要关注的字段取出来;
3. 构造响应包:根据我们解析后的请求报文,我们按照真实登陆服务的响应报文格式去构造该条请求报文所对应的响应报文,然后对该报文压缩加密后响应给请求方;
4. 并发性:桩需要支持多个账户并发模拟登录,所以我们需要实现的服务应该是一个多线程的。
三、大刀阔斧实现登陆桩!
请求响应报文的格式涉及到公司的机密,所以不在这里详细表述。报文主要的思路就是:
实例-->Json化-->pack-->加密-->发送----------------接收--------------->解密-->unpack-->反Json化-->得到具体的字段信息.
构造响应包-->Json化-->pack-->加密-->响应!
今天的主要内容是并发Socket的使用,在Python中,使用SocketServer模块建立连接,SocketServer.ThreadingTCPServer类支持并发TCP连接。那么该怎么使用这个并发TCP服务呢?让我们一步步慢慢来。
首先就是实现一个自定义的TCPHandle类了,我是这样定义的:
class MyTCPHandle(SocketServer.StreamRequestHandler):
在该自定义类中,需要实现handle方法:
def handle(self):
最后就是在main中去建立TCP连接:
mockserver = SocketServer.ThreadingTCPServer(('', int(sys.argv[1])), MyTCPHandle)
第二个参数是服务的端口,我是通过传参的方式去完成的。
最后,TCP开始了忙碌的工作:
mockserver.serve_forever()
这篇日志,从7月28就开始写,一直忙工作,时间抽不出来,今天算是下定决心给写完了。不过看内容方面,明显和我当时打算写日志时候差了很多,就这样吧,希望能多少帮到大家一点!
- 2B4G项目需要做一些线下的压力测试
- webload做压力测试的一些指标
- ubuntu下需要做的一些事情
- 压力测试的一些认识
- ubuntu下 使用AB做压力测试
- linux下web项目的压力测试软件
- 在压力测试开始之前,你需要做哪些准备工作?
- JMeter压力测试需要认证的站点
- 做的一个服务器的压力测试
- 压力测试~一套完整的压力测试项目文档
- 用TestComplete做压力测试的视频教程
- apache的ab命令做压力测试
- 使用fiddler做web的压力测试
- apache的ab命令做压力测试
- 使用fiddler做web的压力测试
- 做性能测试,需要一些什么 LoadRunner
- ACT做压力测试
- Jmeter做压力测试
- Unix网络编程之基本TCP套接字编程
- 飞思卡尔IMX6处理器的GPIO配置方式
- 使用SoapUI 测试Web Service
- 面试接触的那些人
- ANDROID ONTOUCHEVENT, ONCLICK及ONLONGCLICK的调用机制
- 2B4G项目需要做一些线下的压力测试
- 关于easyui中datagrid在使用过程中遇到的问题
- HDU 2039 三角形
- 【阅读】《Head First HTML 与 CSS》第六章——标准与其他
- Python学习笔记—基础环境配置
- ubuntu 下安装opencv 2.3.1 人脸识别 .
- POJ 1094 Sorting It All Out(欧拉排序)
- Protractor小结
- 【前端技术】前端技术综述