MergeFiles.java
3.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
package com.yoho.search.restapi.tools;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.commons.lang.StringUtils;
public class MergeFiles {
private static final String gorOriginFile = "C:/Users/gufei.hu/Desktop/双11压测/sort_0.gor";
private static final String urlOriginFile = "C:/Users/gufei.hu/Desktop/双11压测/sort_origin_0.txt";
private static final String urlResultsFile = "C:/Users/gufei.hu/Desktop/双11压测/sort_results_0.txt";
public static void deleteAndCreateFile() throws Exception {
// 创建以及删除文件
File f = new File(urlOriginFile);
if (f.exists()) {
f.delete();
}
f.createNewFile();
// 创建以及删除文件
File f1 = new File(urlResultsFile);
if (f1.exists()) {
f1.delete();
}
f1.createNewFile();
}
private static List<String> uids = new ArrayList<String>();
public static void initUrlFileFromGorFile() throws Exception {
// 生成url文件
BufferedReader from = new BufferedReader(new FileReader(gorOriginFile));
BufferedWriter to = new BufferedWriter(new FileWriter(urlOriginFile));
String s = from.readLine();
while (s != null) {
Pattern pattern = Pattern.compile("GET\\s(/yohosearch/sort/productList[^\\s]+)\\sHTTP/1.1");
// 2.将字符串和正则表达式相关联
Matcher matcher = pattern.matcher(s);
// 3.String 对象中的matches 方法就是通过这个Matcher和pattern来实现的。
if (matcher.find()) {
String url = "http://10.66.4.30" + matcher.group(1);
to.write(url);// 写入文件
String uid = getUid(url);
if (StringUtils.isNotBlank(uid) && !uids.contains(uid)) {
uids.add(uid);
}
to.newLine();// 换行
}
s = from.readLine();
}
from.close();
to.close();
System.out.println("url文件初始化完成,总用户数:" + uids.size());
}
public static void genUrlResultsFiles(int beishu) {
try {
BufferedWriter to = new BufferedWriter(new FileWriter(urlResultsFile));
for (int beishuIndex = 0; beishuIndex < beishu; beishuIndex++) {
BufferedReader from = new BufferedReader(new FileReader(urlOriginFile));
String url = from.readLine();
while (url != null) {
url = url.replaceAll("&order=[^&]*?&", "&order=&");// 去除order
url = replaceUid(url);// 替换uid
to.write(url);// 写入文件
to.newLine();// 换行
url = from.readLine();
}
from.close();
System.out.println(String.format("文件[%s/%s]]生成成功...", beishuIndex + 1, beishu));
}
to.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static String getUid(String url) {
Pattern pattern = Pattern.compile("uid=(\\d+)");
Matcher matcher = pattern.matcher(url);
if (matcher.find()) {
return matcher.group(1);
}
return "";
}
public static String replaceUid(String url) {
url = url.replaceAll("uid=", "");// 去除order
url = url.replaceAll("&&", "&");// 去除order
if (uids.size() > 0) {
url = url + "&uid=" + uids.get((int) (Math.random() * uids.size()));
}
return url;
}
public static void main(String[] args) throws Exception {
deleteAndCreateFile();
initUrlFileFromGorFile();
genUrlResultsFiles(200);
}
}