From 2ce0e2de6027444b1bd3e1616dd851fd4e49019f Mon Sep 17 00:00:00 2001 From: coderfengyun Date: Tue, 10 Dec 2013 16:58:12 +0800 Subject: [PATCH] now, i can deal with the gzip response with content length --- Script/baidu.html | 106 +++++++++++++++--- Script/gzipResponse.txt | Bin 13313 -> 0 bytes Script/gzipResponseBody.txt | Bin 12852 -> 0 bytes Script/requestHeader.txt | 10 -- .../generator/AbstractCodeGenerator.java | 9 +- .../generator/Bench4qCodeGenerator.java | 2 +- .../httpcapture/generator/ContentDecoder.java | 6 +- .../httpcapture/generator/ResponseParser.java | 2 +- .../test/recordscript/TestCodeGenerator.java | 46 +++++--- 9 files changed, 128 insertions(+), 53 deletions(-) delete mode 100644 Script/gzipResponse.txt delete mode 100644 Script/gzipResponseBody.txt delete mode 100644 Script/requestHeader.txt diff --git a/Script/baidu.html b/Script/baidu.html index 5e9bff93..8fbeb163 100644 --- a/Script/baidu.html +++ b/Script/baidu.html @@ -1,17 +1,93 @@ - - - Bench4Q Test Case - - - - - - No this one - No this one - No this one +Baidu | Business Overview
Corporate Information
Business Overview
Products
Management
Board of Directors
Corporate Governance
Investor Relations
Fact Sheet
Press Releases
Financial Reports
Webcasts
Stock Information
SEC Filings
Analyst Coverage
IR Calendar
Investor FAQs
Contact Baidu
IR Contacts
Request Information
Email Alert
back to baidu

The Baidu Story



Our name was inspired by a poem written more than 800 years ago during the Song Dynasty. The poem compares the search for a retreating beauty amid chaotic glamour with the search for one's dream while confronted by life's many obstacles. "¡­hundreds and thousands of times, for her I searched in chaos, suddenly, I turned by chance, to where the lights were waning, and there she stood." Baidu, whose literal meaning is ¡°hundreds of times¡±, represents a persistent search for the ideal.

+Baidu was founded in 2000 by Internet pioneer Robin Li, creator of visionary search technology Hyperlink Analysis, with the mission of providing the best way for people to find what they¡¯re looking for online. Over the past decade we have strived to fulfill this mission by listening carefully to our users¡¯ needs and wants. To provide intelligent, relevant search results for the tens of billions of queries that are entered into our search platform every day, we focus on powering the best technology optimized for up-to-date local tastes and preferences. Our deep understanding of Chinese language and culture is central to our success and this kind of knowledge allows us to tailor our search technology for our users¡¯ needs. Just to cite one example, we believe there are at least 38 ways of saying "I" in the Chinese language. It is important that we recognize these nuances to effectively address our users¡¯ requests. +

+We provide our users with many channels to find and share information. In addition to our core web search product, we power many popular community-based products, such as Baidu PostBar, the world¡¯s first and largest Chinese-language query-based searchable online community platform, Baidu Knows, the world¡¯s largest Chinese-language interactive knowledge-sharing platform, and Baidu Encyclopedia, the world¡¯s largest user-generated Chinese-language encyclopedia, to name but a few. Beyond these marquee products we also offer dozens of helpful vertical search-based products, such as Maps, Image Search, Video Search, News Search, and many more. We power these through our cutting-edge technology, continually innovating to enhance these services. Our new Box Computing Open Platform brings users deep-linked content and even applications they can use directly through their search box. We believe that Box Computing will dramatically improve people¡¯s search experience and become ubiquitous across all Internet devices including computers and mobile platforms. +

+In addition to serving individual users, we also serve as a media platform for online marketing customers. Our business model is mainly based on a performance-oriented marketing platform for businesses to cost effectively reach relevant Internet users. We offer performance-based online marketing services and display advertisements through both Baidu organic websites and our affiliated websites (our Union business). Our affiliated websites lead traffic to us through integrating a Baidu search box into their sites and/or by displaying relevant contextual promotional links for our customers. The majority of our revenue is derived from performance-based online marketing services and our customers pay on a cost per click basis ¨C that is, our customers only pay when their paid-link is clicked through and they get the ¡°lead¡±. Our goal is to give our customers an online marketing platform that has a wide range of functions which they can use to meet their marketing needs and an extensive selection of tools for managing their accounts as well as data for analyzing and optimizing ROI. +

+To best serve our customers, our sales efforts consist of direct sales teams in first tier cities and third-party distributors in lower tier cities. This allows us to better penetrate each market and tailor our support and personal interaction based on customers¡¯ needs. Today, our online marketing platform serves hundreds of thousands of small- and medium-sized enterprises (SMEs) and many branded multinational customers. The measurable ROI offered by our online marketing platform has made it one of the most effective marketing platforms for companies targeting the Chinese market. We will continue to strive to provide an extra level of value-added sales and customer service to address a wide range of customer needs. Our focus is to help the market continue to develop and educate the many companies who don¡¯t understand the benefits of search engine marketing so that we can help them grow their businesses. +

+You don¡¯t need us to tell you that China¡¯s Internet space is booming. With the world¡¯s largest Internet user population ¨C 564 million as of end of 2012 ¨C and a long way to go to reach internet penetration levels of developed countries, China¡¯s internet is growing in both influence and sophistication. And as more and more Chinese come online, Baidu continues to innovate to meet their increasingly diverse tastes. With our goal of best serving the needs of our users and customers with intelligent and relevant solutions, we look forward to a robust future.

+
Copyright ? Baidu, Inc. All Rights Reserved.
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 Xj=+$;_DvR)Pm#Z*D^9mv5D@ diff --git a/Script/gzipResponseBody.txt b/Script/gzipResponseBody.txt deleted file mode 100644 index 219f979aaa4dd833fb65ed6db936289eec8f9768..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12852 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 diff --git a/Script/requestHeader.txt b/Script/requestHeader.txt deleted file mode 100644 index d1949e05..00000000 --- a/Script/requestHeader.txt +++ /dev/null @@ -1,10 +0,0 @@ -GET / HTTP/1.1 -Host: www.baidu.com -Connection: keep-alive -Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 -User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36 -DNT: 1 -Accept-Encoding: gzip,deflate,sdch -Accept-Language: en,zh-CN;q=0.8,zh;q=0.6 -Cookie: BAIDUID=1D43A956BCED0A81B8340058134CD2F6:FG=1; BDUSS=EJMRWZ2eklMaERoQ344em5RZ2EyTVh0UjRDcWpiRmhnMjRlLTZnR3NZajBOS0JTQVFBQUFBJCQAAAAAAAAAAAEAAAA2JuwxZmVuZ3l1bjIwMTIzOQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPSneFL0p3hSN; Hm_lvt_9f14aaa038bbba8b12ec2a4a3e51d254=1384429678; H_PS_PSSID=3784_4199_1432_4421_4414_4211_4264_4450_4503; BDRCVFR[feWj1Vr5u3D]=I67x6TjHwwYf0 - diff --git a/src/main/java/org/bench4q/master/scriptrecord/httpcapture/generator/AbstractCodeGenerator.java b/src/main/java/org/bench4q/master/scriptrecord/httpcapture/generator/AbstractCodeGenerator.java index e52e8d3a..d6184a51 100644 --- a/src/main/java/org/bench4q/master/scriptrecord/httpcapture/generator/AbstractCodeGenerator.java +++ b/src/main/java/org/bench4q/master/scriptrecord/httpcapture/generator/AbstractCodeGenerator.java @@ -4,7 +4,6 @@ import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileWriter; import java.io.IOException; -import java.nio.charset.Charset; import java.util.Date; import java.util.HashMap; import java.util.Iterator; @@ -324,11 +323,13 @@ public abstract class AbstractCodeGenerator implements IScriptGenerator, String contentType = parser.parseContentType(respStr); String charset = parser.parseCharset(respStr); String contentEncoding = parser.parseContentEncoding(respStr); + int contentLength = Integer + .parseInt(parser.parseContentLength(respStr)); ContentDecoder contentDecoder = ContentDecoder .createDecoder(contentEncoding); - byte[] contentBodyAfterDecoded = contentDecoder.decodeContent( - new ByteArrayInputStream(parser.parseReponseBody(respStr)), - Charset.forName(charset)); + byte[] contentBodyAfterDecoded = contentDecoder + .decodeContent(new ByteArrayInputStream(response, + response.length - contentLength, contentLength)); doAssertResponse(respCode); if ((contentType != null) && (mimeTypes.get(contentType) != null) && (respCode != null)) { diff --git a/src/main/java/org/bench4q/master/scriptrecord/httpcapture/generator/Bench4qCodeGenerator.java b/src/main/java/org/bench4q/master/scriptrecord/httpcapture/generator/Bench4qCodeGenerator.java index 5399ce88..1e6f9693 100644 --- a/src/main/java/org/bench4q/master/scriptrecord/httpcapture/generator/Bench4qCodeGenerator.java +++ b/src/main/java/org/bench4q/master/scriptrecord/httpcapture/generator/Bench4qCodeGenerator.java @@ -216,7 +216,7 @@ public class Bench4qCodeGenerator extends AbstractCodeGenerator { if (htmlStart == -1 || htmlEnd == -1) { return; } - String htmlContent = responseContent.substring(htmlStart, htmlEnd + 8); + String htmlContent = responseContent.substring(htmlStart, htmlEnd + 6); saveToFile(htmlContent); Document document = Jsoup.parse(htmlContent); diff --git a/src/main/java/org/bench4q/master/scriptrecord/httpcapture/generator/ContentDecoder.java b/src/main/java/org/bench4q/master/scriptrecord/httpcapture/generator/ContentDecoder.java index 93fc53ee..fd79796f 100644 --- a/src/main/java/org/bench4q/master/scriptrecord/httpcapture/generator/ContentDecoder.java +++ b/src/main/java/org/bench4q/master/scriptrecord/httpcapture/generator/ContentDecoder.java @@ -2,8 +2,6 @@ package org.bench4q.master.scriptrecord.httpcapture.generator; import java.io.ByteArrayOutputStream; import java.io.InputStream; -import java.nio.charset.Charset; - import org.apache.log4j.Logger; import org.bench4q.master.exception.DealWithLog; @@ -21,7 +19,7 @@ public class ContentDecoder { } } - public byte[] decodeContent(InputStream inputStream, Charset charset) { + public byte[] decodeContent(InputStream inputStream) { try { ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); byte[] buf = new byte[1024]; @@ -29,7 +27,7 @@ public class ContentDecoder { while ((len = inputStream.read(buf)) > 0) { outputStream.write(buf, 0, len); } - return outputStream.toString(charset.name()).getBytes(charset); + return outputStream.toByteArray(); } catch (Exception e) { logger.error(DealWithLog.getExceptionStackTrace(e)); return null; diff --git a/src/main/java/org/bench4q/master/scriptrecord/httpcapture/generator/ResponseParser.java b/src/main/java/org/bench4q/master/scriptrecord/httpcapture/generator/ResponseParser.java index 02da828e..01821c72 100644 --- a/src/main/java/org/bench4q/master/scriptrecord/httpcapture/generator/ResponseParser.java +++ b/src/main/java/org/bench4q/master/scriptrecord/httpcapture/generator/ResponseParser.java @@ -19,7 +19,7 @@ public class ResponseParser { pos += 4; content = respStr.substring(pos); } - return content.getBytes(); + return content.getBytes("ISO-8859-1"); } public String parseContentLength(String input) { diff --git a/src/test/java/org/bench4q/master/test/recordscript/TestCodeGenerator.java b/src/test/java/org/bench4q/master/test/recordscript/TestCodeGenerator.java index ac26e84e..2722b10a 100644 --- a/src/test/java/org/bench4q/master/test/recordscript/TestCodeGenerator.java +++ b/src/test/java/org/bench4q/master/test/recordscript/TestCodeGenerator.java @@ -10,6 +10,7 @@ import java.nio.charset.Charset; import java.util.zip.GZIPInputStream; import org.apache.commons.io.FileUtils; +import org.apache.commons.io.output.ByteArrayOutputStream; import org.bench4q.master.scriptrecord.httpcapture.Bench4qTestScriptAdapter; import org.bench4q.master.scriptrecord.httpcapture.HttpRequestHeader; import org.bench4q.master.scriptrecord.httpcapture.generator.Bench4qCodeGenerator; @@ -19,21 +20,32 @@ import org.bench4q.master.scriptrecord.httpcapture.generator.ResponseParser; import org.bench4q.share.models.agent.RunScenarioModelNew; import org.junit.Test; -public class TestCodeGenerator { +public class TestCodeGenerator extends TestRecordBase { private Bench4qTestScriptAdapter scriptAdapter = new Bench4qTestScriptAdapter( new RunScenarioModelNew()); private Bench4qCodeGenerator codeGenerator = new Bench4qCodeGenerator( this.scriptAdapter); + private static String dealWithSerie = "Script/gzip/gzipBaiduIR"; @Test public void testProcessResponse() throws Exception { HttpRequestHeader header = new HttpRequestHeader(new FileInputStream( - new File("Script/requestHeader.txt"))); + new File(dealWithSerie + "Request.txt"))); + header.url = "ir.baidu.com"; + this.scriptAdapter + .insertUserBehaviorsToScenario(createUserBehaviorModel(header.url)); + FileInputStream inputStream = new FileInputStream(new File( + dealWithSerie + "Response.txt")); + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + byte[] buffer = new byte[1024]; + int size = -1; + while ((size = inputStream.read(buffer)) != -1) { + outputStream.write(buffer, 0, size); + } + inputStream.close(); + outputStream.close(); IScriptGenerator scriptGenerator = this.codeGenerator; - scriptGenerator.processResponse( - header, - FileUtils.readFileToString(new File("Script/gzipResponse.txt"), - "ISO-8859-1").getBytes("ISO-8859-1")); + scriptGenerator.processResponse(header, outputStream.toByteArray()); assertTrue(this.scriptAdapter.getChildrenUrls().size() > 0); } @@ -50,15 +62,15 @@ public class TestCodeGenerator { public void testParseContentLength() throws IOException { String contentLengthString = new ResponseParser() .parseContentLength(FileUtils.readFileToString( - new File("Script/gzipResponse.txt")).toLowerCase()); + new File(dealWithSerie + "Response.txt")).toLowerCase()); int contentLength = Integer.parseInt(contentLengthString); - assertTrue(contentLength == 12852); + assertTrue(contentLength == 5023); } @Test public void testGetContentBody() throws IOException { String contentFromFile = FileUtils.readFileToString(new File( - "Script/gzipResponseBody.txt"), "ISO-8859-1"); + dealWithSerie + "ResponseBody.txt"), "ISO-8859-1"); byte[] contentBody1 = contentFromFile.getBytes("ISO-8859-1"); String responseString = new String(contentBody1, Charset.forName("ISO-8859-1")); @@ -75,13 +87,11 @@ public class TestCodeGenerator { @Test public void testUncompressGzipContent() throws IOException { ContentDecoder contentDecoder = ContentDecoder.createDecoder("gzip"); - String contentFromFile = FileUtils.readFileToString(new File( - "Script/gzipResponseBody.txt"), "ISO-8859-1"); - ByteArrayInputStream inputStream = new ByteArrayInputStream( - contentFromFile.getBytes("ISO-8859-1")); - String contentString = new String(contentDecoder.decodeContent( - inputStream, Charset.forName("ISO-8859-1")), - Charset.forName("ISO-8859-1")); + FileInputStream inputStream = new FileInputStream(new File( + dealWithSerie + "ResponseBody.txt")); + String contentString = new String( + contentDecoder.decodeContent(inputStream), + Charset.forName("utf-8")); System.out.println(contentString); assertTrue(contentString.indexOf(" -1); } @@ -89,8 +99,8 @@ public class TestCodeGenerator { @Test public void testFileInputStreamAndFileUtils() throws IOException { byte[] responseBodyBytes = FileUtils.readFileToString( - new File("Script/gzipResponseBody.txt"), "UTF-8").getBytes( - "UTF-8"); + new File(dealWithSerie + "ResponseBody.txt"), "UTF-8") + .getBytes("UTF-8"); int length1 = responseBodyBytes.length; String responseBodyString = new String(responseBodyBytes, "UTF-8"); int length2 = responseBodyString.getBytes("UTF-8").length;