mirror of
https://github.com/yanyiwu/cppjieba.git
synced 2025-07-18 00:00:12 +08:00
add servertest
This commit is contained in:
parent
cdd8517cd0
commit
1db13168ff
@ -173,7 +173,7 @@ FullSegment.hpp
|
|||||||
|
|
||||||
#### TransCode模块
|
#### TransCode模块
|
||||||
|
|
||||||
TransCode.cpp/TransCode.h 负责转换编码类型,将utf8和gbk转换成`uint16_t`类型,也负责逆转换。
|
TransCode.hpp 负责转换编码类型,将utf8和gbk转换成`uint16_t`类型,也负责逆转换。
|
||||||
|
|
||||||
### src/Husky
|
### src/Husky
|
||||||
|
|
||||||
|
@ -1 +1 @@
|
|||||||
INSTALL(FILES hmm_model.utf8 jieba.dict.utf8 DESTINATION share/CppJieba/dicts)
|
INSTALL(FILES hmm_model.utf8 jieba.dict.utf8 DESTINATION share/CppJieba/dict)
|
||||||
|
91
test/servertest/load_test.py
Executable file
91
test/servertest/load_test.py
Executable file
@ -0,0 +1,91 @@
|
|||||||
|
#!/usr/bin/python
|
||||||
|
# coding:utf-8
|
||||||
|
import time
|
||||||
|
import urllib2
|
||||||
|
import threading
|
||||||
|
from Queue import Queue
|
||||||
|
from time import sleep
|
||||||
|
import sys
|
||||||
|
|
||||||
|
# 性能测试页面
|
||||||
|
#PERF_TEST_URL = "http://10.2.66.38/?yyid=-1&suv=1309231700203264&callback=xxxxx"
|
||||||
|
URLS = [line for line in open("../testdata/load_test.urls", "r")]
|
||||||
|
|
||||||
|
# 配置:压力测试
|
||||||
|
THREAD_NUM = 10 # 并发线程总数
|
||||||
|
ONE_WORKER_NUM = 500 # 每个线程的循环次数
|
||||||
|
LOOP_SLEEP = 0.01 # 每次请求时间间隔(秒)
|
||||||
|
|
||||||
|
# 配置:模拟运行状态
|
||||||
|
#THREAD_NUM = 10 # 并发线程总数
|
||||||
|
#ONE_WORKER_NUM = 10 # 每个线程的循环次数
|
||||||
|
#LOOP_SLEEP = 0 # 每次请求时间间隔(秒)
|
||||||
|
|
||||||
|
|
||||||
|
# 出错数
|
||||||
|
ERROR_NUM = 0
|
||||||
|
|
||||||
|
|
||||||
|
#具体的处理函数,负责处理单个任务
|
||||||
|
def doWork(index, url):
|
||||||
|
t = threading.currentThread()
|
||||||
|
#print "["+t.name+" "+str(index)+"] "+PERF_TEST_URL
|
||||||
|
|
||||||
|
try:
|
||||||
|
html = urllib2.urlopen(url).read()
|
||||||
|
except urllib2.URLError, e:
|
||||||
|
print "["+t.name+" "+str(index)+"] "
|
||||||
|
print e
|
||||||
|
global ERROR_NUM
|
||||||
|
ERROR_NUM += 1
|
||||||
|
|
||||||
|
|
||||||
|
#这个是工作进程,负责不断从队列取数据并处理
|
||||||
|
def working():
|
||||||
|
t = threading.currentThread()
|
||||||
|
print "["+t.name+"] Sub Thread Begin"
|
||||||
|
|
||||||
|
i = 0
|
||||||
|
while i < ONE_WORKER_NUM:
|
||||||
|
i += 1
|
||||||
|
doWork(i, URLS[i % len(URLS)])
|
||||||
|
sleep(LOOP_SLEEP)
|
||||||
|
|
||||||
|
print "["+t.name+"] Sub Thread End"
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
#doWork(0)
|
||||||
|
#return
|
||||||
|
|
||||||
|
t1 = time.time()
|
||||||
|
|
||||||
|
Threads = []
|
||||||
|
|
||||||
|
# 创建线程
|
||||||
|
for i in range(THREAD_NUM):
|
||||||
|
t = threading.Thread(target=working, name="T"+str(i))
|
||||||
|
t.setDaemon(True)
|
||||||
|
Threads.append(t)
|
||||||
|
|
||||||
|
for t in Threads:
|
||||||
|
t.start()
|
||||||
|
|
||||||
|
for t in Threads:
|
||||||
|
t.join()
|
||||||
|
|
||||||
|
print "main thread end"
|
||||||
|
|
||||||
|
t2 = time.time()
|
||||||
|
print "========================================"
|
||||||
|
#print "URL:", PERF_TEST_URL
|
||||||
|
print "任务数量:", THREAD_NUM, "*", ONE_WORKER_NUM, "=", THREAD_NUM*ONE_WORKER_NUM
|
||||||
|
print "总耗时(秒):", t2-t1
|
||||||
|
print "每次请求耗时(秒):", (t2-t1) / (THREAD_NUM*ONE_WORKER_NUM)
|
||||||
|
print "每秒承载请求数:", 1 / ((t2-t1) / (THREAD_NUM*ONE_WORKER_NUM))
|
||||||
|
print "错误数量:", ERROR_NUM
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
|
|
11
test/servertest/run_curl.sh
Executable file
11
test/servertest/run_curl.sh
Executable file
@ -0,0 +1,11 @@
|
|||||||
|
CURL_RES=../testdata/curl.res
|
||||||
|
TMP=curl.res.tmp
|
||||||
|
curl -s "http://127.0.0.1:11200/?key=南京市长江大桥" >> $TMP
|
||||||
|
if diff $TMP $CURL_RES >> /dev/null
|
||||||
|
then
|
||||||
|
echo "ok";
|
||||||
|
else
|
||||||
|
echo "failed."
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm $TMP
|
1
test/testdata/curl.res
vendored
Normal file
1
test/testdata/curl.res
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
["南京市", "长江大桥"]
|
1
test/testdata/load_test.urls
vendored
Normal file
1
test/testdata/load_test.urls
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
http://127.0.0.1:11200/?key=南京市长江大桥
|
Loading…
x
Reference in New Issue
Block a user