Abstract:
A load simulator is used to apply access load on a web server device as a test target using a plurality of virtual web clients each of which transmits a request message and receives a response message in order according to a given scenario. The load simulator makes a computer function as search means for searching page data of a response message for predetermined character strings when a virtual web client receives the response message from the web server device through a communication device, source modifying means for overwriting the predetermined character string searched by the search means by replacing characters of a part of the string to disable a function provided by the original character string, and output means for passing the page data that is overwritten by the source modifying means to the viewer.

Description:
BACKGROUND OF THE INVENTION 
   The present invention relates to a load simulator that is a program for applying access load on a web server device and to a computer on which the program runs. 
   A web load testing apparatus includes a load simulator and a viewer to observe a state of a web server device as a test target while applying a load thereto. The load simulator generates a plurality of threads that function as virtual web clients; gives scenarios, each of which defines the request order for page data in the web server device as a test target, to the generated virtual web clients; and makes the clients transmit request messages and receive response messages as defined in the scenario. Thereby, the load simulator saves the response messages that are received by the virtual web clients from the web server device, and records a log of the responses. The viewer displays a web page based on the page data in the response messages, or displays a list of the log information about the responses. 
   Some viewers mentioned above have a function to display a web page instantly every time any virtual web client receives a response message from a web server device as a test target, based on page data in the response message. 
   However, if such a viewer includes means for issuing a request of data of an image that is embedded into a web page from page data thereof in a response message and means for opening a new window, the web server device executes processes that are not related to the access load test, which leaves a response log unrelated to the scenario and opens a window other than the window of the viewer. 
   SUMMARY OF THE INVENTION 
   The present invention is accomplished to solve the above-mentioned conventional problems, and an object thereof is to prohibit a process unrelated to an access load test even if a viewer displays a responded web page instantly. 
   A load simulator of the present invention is used to apply access load on a web server device as a test target using a plurality of virtual web clients each of which transmits a request message and receives a response message in order according to a given scenario. The load simulator makes a computer function as search means for searching page data of a response message for predetermined character strings when a virtual web client receives the response message from the web server device through a communication device, source modifying means for overwriting the predetermined character string searched by the search means by replacing characters of a part of the string to disable a function provided by the original character string, and output means for passing the page data that is overwritten by the source modifying means to a viewer. 
   With this construction, since the predetermined character string in the page data of the response message is overwritten by replacing characters of a part of the string to disable a function provided by the original character string before the virtual web client passes the response message received from the web server device of the test target to the viewer, the viewer displays the web page based on the page data of the response message without executing a process that corresponds to the function of the original character string and is unrelated to the access load test. 
   Therefore, according to the present invention, a process unrelated to an access load test is prohibited even if a viewer displays a responded web page instantly. 

   
     DESCRIPTION OF THE ACCOMPANYING DRAWINGS 
       FIG. 1  is a block diagram that shows a web server device that is a target of a web load test and a web load testing apparatus that executes the test according to an embodiment of the present invention, 
       FIG. 2  is a flowchart showing a first half of a process executed by a thread generated as a virtual web client, 
       FIG. 3  is a flow chart showing a latter half of the process executed by the thread generated as a virtual web client, 
       FIG. 4  shows an example of page data containing a script tag, 
       FIG. 5  shows a condition where the script tag in the page data of  FIG. 4  has been disabled, 
       FIG. 6  shows an example of page data containing an onload tag, 
       FIG. 7  shows a condition where the onload tag in the page data of  FIG. 6  has been cancelled, 
       FIG. 8A  shows an example of page data containing an absolute path, 
       FIG. 8B  shows a condition where the end of the protocol section of the absolute path of  FIG. 8A  has been replaced by the semicolon, 
       FIG. 9  shows the web page displayed based on the page data of  FIG. 4 , 
       FIG. 10  shows the web page displayed based on the page data of  FIG. 5 , 
       FIG. 11  shows the web page displayed based on the page data of  FIG. 6 , and 
       FIG. 12  shows the web page displayed based on the page data of  FIG. 7 . 
   

   DESCRIPTION OF THE PREFERRED EMBODIMENTS 
   There will now be described an embodiment of the present invention with reference to the accompanying drawings. 
     FIG. 1  is a block diagram showing a web server device  10  that is a target of a web load test and a web load testing apparatus  20  that executes the test according to the embodiment of the present invention. 
   The web server device  10  is a general purpose computer in which programs for implementing a web server function are installed. The computer that constitutes the web server device  10  contains hardware, such as a CPU (Central Processing Unit)  10   a , a DRAM (Dynamic Random Access Memory)  10   b , a communication adapter  10   c , and storage  10   d . The basic software  11 , which provides fundamental functions to many pieces of application software, is installed in the storage  10   d . For example, the fundamental functions include management of input/output data via the communication adapter  10   c , management of memory areas of the DRAM  10   b  and the storage  10   d , and the like. The storage  10   d  also stores a web server program  12  and page data  13  that makes a general purpose computer operate as a web server device. 
   Receiving a request from a web client device (not shown), the web server program  12  reads a requested page data from the inner storage or creates a requested page data, and transmits it to the web client device as a source of request through the communication adapter  10   c . The page data  13  is HTML (HyperText Markup Language) source data for displaying a web page. This page data  13  may include the information that displays a link for jumping to another web page. Further, the page data  13  may include a server side program or a client side program. 
   The web load testing apparatus  20  is a device for executing a web load test for the web server device  10  as a test target. This web load testing apparatus  20  is a general personal computer in which the program for implementing a web load test tool function has been installed. The personal computer that constitutes the web load testing apparatus  20  is provided with a display  20   a  such as a liquid crystal display, input devices  20   b  such as a keyboard and a mouse, and a main unit that is connected to these devices  20   a  and  20   b . The main unit contains hardware such as a communication adapter  20   c , a CPU  20   d , a DRAM  20   e  and storage  20   f . The storage  20 f stores basic software  21 . 
   The web load testing apparatus  20  stores a web load test tool (program)  22  that makes a personal computer operate as the web load testing apparatus. The web load test tool  22  includes modular programs (components) of a load simulator  22   a , a viewer  22   b  and a scenario generation module  22   c.    
   The load simulator  22   a  applies access load onto the web server device as a test target. Specifically, the load simulator  22   a  creates a plurality of threads that function as virtual web clients. Then the load simulator  22   a  gives a scenario, which defines request order of page data in the web server device of the test target, to the virtual web clients so that the virtual web clients execute the requests according to the scenario. As a result, the load simulator  22   a  saves response messages that are received by the respective virtual web clients from the web server device and records a log of the responses. 
   The viewer  22   b  displays a web page based on the page data in the response message and lists the log information of the responses. 
   Next, the process that is executed by a thread generated as a virtual web client in the embodiment will be described. 
     FIGS. 2 and 3  are flowcharts showing the process that is executed by the thread generated as a virtual web client. 
   In the first step S 101  after the start of process, the thread, that is, the CPU  20   d  that executes the thread, acquires a scenario from the load simulator  22   a . A scenario consists of some request messages that are transmitted by a virtual web client during the web load test and transmission orders thereof. Every URL (Uniform Resource Locator) in the request messages included in the scenario is assigned to the page data  13  of the web server device  10  used as a test target. 
   In the next step S 102 , the thread waits until the start instruction of the web load test is received from the load simulator  22   a . Receiving the start indication of a web load test, the thread proceeds the process to step S 103 . 
   In step S 103 , the thread substitutes an initial value “1” for a variable n for memorizing the use count of the scenario, and then, it executes the first processing loop L 1 . 
   In the first processing loop L 1 , the thread executes step S 111 , S 112 , S 121 -S 123 , S 131 -S 133 , and S 141  in order for each of the request messages in the scenario acquired in step S 101 . 
   In step S 111 , the thread transmits a processing target request message. 
   In the next step S 112 , the thread waits until a response message is received as a response from the destination. Receiving the response message, the thread proceeds the process to step S 121 . 
   In step S 121 , the thread searches the page data in the response message received in step S 112  for disabling-object tags. Here, there are “&lt;script-”, “&lt;object-”, “&lt;applet-”, “&lt;embed-”, “&lt;-onload-” as disabling-object tags. 
   In the next step S 122 , the thread determines whether a disabling-object tag is detected in the page data of the response message received in step S 112 . 
   The CPU  20   d  that executes the process in steps S 121  and S 122  corresponds to the search means mentioned above. And in Step S 122 , when the disabling-object tag is detected from the page data in the response message received in step S 112 , the thread branches the process from step S 122  to execute a second process loop L 2 . 
   In the second process loop L 2 , the thread executes a process in step S 123  for each of the disabling-object tags detected in step S 121  in turn. 
   In step S 123 , the thread disables the disabling-object tags in this page data. Specifically, when the disabling-object tag is “&lt;script-”, the thread replaces “s” with characters “&amp;#x73; ” that is expressed by an entity reference form. That is, “&lt;script-” is replaced with “&lt;&amp;#x73;cript-”.  FIG. 4  shows the page data before disabling the tag “&lt;script-”.  FIG. 5  shows the page data after disabling the tag “&lt;script-”. When a disabling-object tag is “&lt;-onload-”, the thread replaces “o” with characters “&amp;#x6F;” that is expressed by an entity reference form. That is, “&lt;-onload-” is replaced with “&lt;-&amp;#x6F;nload-”.  FIG. 6  shows the page data before disabling the tag “&lt;-onload-”.  FIG. 7  shows the page data after disabling the tag “&lt;-onload-”. 
   The CPU  20   d  that executes the process in step S 111  as the thread corresponds to the source modifying means mentioned above. 
   When the thread finishes the process in step S 123  for all the disabling-object tags detected at step S 121 , the thread leaves the second process loop L 2  and proceeds the process to step S 131 . 
   On the other hand, when a disabling-object tag is not detected in step S 122  from the page data in the response message that is received in step S 112 , the thread branches the process from step S 122  and proceeds the process to step S 131  without disabling a tag. 
   In step S 131 , the thread searches the page data in the response message that is received in step S 112  for a disabling-object absolute path. Here, the disabling-object absolute path means an absolute path included in the tag “&lt;script-”, “&lt;frame-”, “&lt;iframe-”, “&lt;img-”, “&lt;link-”, “&lt;a-”, or “&lt;area-”. 
   In the next step S 132 , the thread determines whether a disabling-object absolute path is detected from the page data in the response message that is received in step S 112 . The CPU  20   d  that executes the process in steps S 131  and S 132  as a function of the thread corresponds to the search means mentioned above. 
   When the disabling-object absolute paths are detected from the page data in the response message, the thread branches the process from step S 132  and executes the third process loop L 3 . 
   In the third process loop L 3 , the thread executes the process in step S 133  for each of the disabling-object absolute paths detected in step S 131 . 
   In step S 133 , the thread disables the absolute path in the page data. Specifically, the thread replaces a colon in the end of the protocol section in the disabling-object absolute path with a semicolon.  FIG. 8A  shows the image tag containing an absolute path before replacing the end of the protocol portion with a semicolon.  FIG. 8B  shows the image tag containing the absolute path after replacing the end of the protocol portion with a semicolon. 
   The CPU  20   d  that executes the process in step S 133  as the thread corresponds to the source modifying means mentioned above. 
   When the thread finishes the process in step S 133  for all the disabling-object absolute paths detected in step S 131 , the thread leaves the third process loop L 3  and proceeds the process to step S 141 . 
   In step S 141 , the thread passes the page data after the execution of steps S 121 -S 123 , S 131 -S 133  to the viewer  22   b . Receiving the page data, the viewer  22   b  displays a web page on the display  20   a  based on the page data. 
   The CPU  20   d  that executes the process in step S 141  as the thread corresponds to the output means mentioned above. 
   When the thread finishes the process in steps S 111 , S 112 , S 121 -S 123 , S 131 -S 133 , and S 141  for all the request messages in the scenario that is acquired in step S 101 , the thread leaves the first process loop L 1  and proceeds the process to step S 151 . 
   In step S 151 , the thread increments the value of the variable n by 1. 
   In the next step S 152 , the thread determines whether the value of the variable n goes beyond a predetermined upper limit. 
   When the value of the variable n does not go beyond the predetermined upper limit, the thread branches the process from step S 152  to start the first process loop L 1 . 
   On the other hand, when the value of the variable n goes beyond the predetermined upper limit, the thread finishes the process shown in  FIGS. 2 and 3 . 
   Next, the operations and effects of the load simulator  22   a  of the embodiment will be described. 
   As mentioned above, all the threads, which are generated by the load simulator  22   a  as virtual web clients, apply access load onto the web server device  10  as a test target according to scenarios. When each of the threads applies the access load, each thread confirms the presence or absence of a disabling-object tag and the presence or absence of a disabling-object absolute path in page data of a response message whenever each thread receives a response message from the web server device  10  (steps S 121 , S 122 , S 131 , and S 132 ). If the page data includes a disabling-object tag or a disabling-object absolute path, a thread disables them (step S 123 , S 133 ) and then, passes the page data to the viewer  22   b  (Step S 141 ). 
   A disabling-object tag in page data of a response message has a function to execute a process unrelated to an access load test such as issue of a request of image data embedded into a web page or starting of a new window when the viewer  22   b  performs a rendering. 
   For example, when a rendering is performed based on the page data of  FIG. 4  before disabling a disabling-object tag “&lt;script-”, a new window other than the window of the viewer  22   b  will be generated as shown in  FIG. 9 . However, when a rendering is performed based on the page data of  FIG. 5  after disabling the disabling-object tag “&lt;script-”, a new window other than the window of viewer  22   b  is not generated as shown in  FIG. 10 . Therefore, a process unrelated to an access load test cannot be executed. 
   Further, when a rendering is performed based on the page data of  FIG. 6  before disabling a disabling-object tag “&lt;-onload-”, a new window other than the window of the viewer  22   b  will be generated as shown in  FIG. 11 . However, when a rendering is performed based on the page data of  FIG. 7  after disabling the disabling-object tag “&lt;-onload-”, a new window other than the window of the viewer  22   b  is not generated as shown in  FIG. 12 . Therefore, a process unrelated to an access load test cannot be executed. 
   Further, when a disabling-object absolute path included in page data is enabled as shown in  FIG. 8A , a request to the absolute path is issued when the viewer  22   b  performs a rendering. However, if the disabling-object absolute path included in the page data has been disabled as shown in  FIG. 8B , the absolute path becomes ineffective on a communication protocol, which prohibits a request. Therefore, a process unrelated to an access load test cannot be executed. 
   In the above-described embodiment, although the absolute path is disabled, the relative path does not need to be disabled. It is because an image tag “&lt;img-” with a relative path does not issue a request to the web server device  10 .