WebPagetest 1.4 Available for download

The package to set up your own private instance of WebPagetest is now available on sourceforge here.

This can be particularly useful if you want to test dev pages on your intranet or if you want to test from your own test location (though if you’d like to host a test location for public consumption, feel free to ping me).

The package as it is currently configured is expecting to run both the web server and testing from a single machine out of “c:\web site”. They can be split apart and/or moved to a different location, just make sure to update the appropriate configuration files.
[size=large]
Configuration files[/size]

All of the site configuration is now controlled by files in the content\settings folder:

[list]
[]settings.ini - Controls the features and customization of the site
[
]locations.ini - Details on all of the test locations
[*]intro.ini - Introductory paragraph on the main page
[/list]

[size=large]New Install[/size]

Single machine configuration (web server and testers running on the same machine):

[list]
[]You need an XP or 2003 Server (XP is the most supported since that’s what I do most dev on)
[
]URLBlast.exe needs to be added to the startup folder (or for testing, just manually started) – It is in the “Web Site” folder root
[]As far as software goes, you need Apache 2.2+ with PHP 5 installed and mod_rewrite enabled
[
]There is a sample httpd.conf file for Apache in the Web Site folder
[]Disk space depends on how much history and volume you’re expecting but the requirements are pretty light – around 250 KB per test run so around 4000 per gig
[
]Default OS accounts will get created the first time urlblast is run (user1, user2, etc). If you want to override the account names or passwords edit them in urlblast.ini
[*]The main account you want to use for running the controller software needs to be an admin account and configured to auto login (I use TweakUI to set up the auto login). Sorry, can’t run locked because the desktop needs to be visible to be able to capture the screen shots). If your remote system isn’t in a secure location and you don’t trust the remote hands and eyes this is the scariest part since the system will be logged in as an admin all the time (at the console).
[/list]

Multiple machine configuration (split web server from testers):

Web Server:

The web server can be running any OS that supports Apache 2.2+ and PHP 5 (Linux and Windows have been verified to work)

[list]
[]The web server can be running any OS that supports Apache 2.2+ and PHP 5 (Linux and Windows have been verified to work)
[
]You need Apache 2.2 (or later) installed with mod_rewrite enabled
[]You need PHP 5 installed and configured to work with Apache and you need the gd2 plugin enabled
[
]There is a sample httpd.conf file for Apache in the Web Site folder
[*]Disk space depends on how much history and volume you’re expecting but the requirements are pretty light – around 250 KB per test run so around 4000 per gig
[/list]

Test Machine:

[list]
[]You need an XP or 2003 Server (XP is the most supported since that’s what I do most dev on)
[
]Copy urlblast.exe, urlblast.ini and pagetest.dll to a folder on the test machine
[]URLBlast.exe needs to be added to the startup folder (or for testing, just manually started) – It is in the “Web Site” folder root
[
]Default OS accounts will get created the first time urlblast is run (user1, user2, etc). If you want to override the account names or passwords edit them in urlblast.ini
[*]The main account you want to use for running the controller software needs to be an admin account and configured to auto login (I use TweakUI to set up the auto login). Sorry, can’t run locked because the desktop needs to be visible to be able to capture the screen shots). If your remote system isn’t in a secure location and you don’t trust the remote hands and eyes this is the scariest part since the system will be logged in as an admin all the time (at the console).
[/list]

[size=large]Upgrade Existing Install[/size]

To upgrade an existing install, copy over the whole content folder except for the settings directory. You should also update your pagetest.dll and urlblast.exe binaries.

Jobsync has been replaced by a doing http posts directly to the web server for transmitting jobs around. You’ll want to look at the new urlblast.ini settings and copy the relevant ones over to your system (or overwrite your version and modify the new one).

Hi Pat,

I have a few questions:
[list]
[]Is it possible to disable screenshooting and run in locked mode?
[
]Will it work on VMWare instance?
[/list]

I’ll probably try installing it next week and will let you know how it goes.

Thank you,

       Sergey

Yes, you can run in a VM - I do that all the time for testing but be careful because the performance of a VM tends to not be as consistent as physical hardware.

If you run in locked mode the screen shot will just be black but the code will work fine. If you’re brave I have an experimental way to run the browser that does allow screen shots while locked (with the ultimate goal of being able to run it all as a service in the background and not require login at all). I have a custom app that hosts the browser control (so it actually uses the IE engine even though the frame itself isn’t IE) that works fine for screen shots when locked (and fixes some other pain points around IE8 and running multiple instances).

Yep, I might be brave enough for that :wink: Embedded IE might be a good solution if there are no extreme complications. Is this app currently just a binary to run?

Let me try regular version first and I’ll see if having unlocked box is a solution for me.

BTW, does Pagetest support IE 6 at all? or is it just 7&8?

          Sergey

It works with IE6 as well though with all of the security holes I won’t be making that available for public testing :slight_smile:

Yes, the app is just a binary that you drop in the same directory as urlblast.exe and there’s just a ini file change for urlblast to tell it to launch pagetest.exe instead of ie. There shouldn’t be any complications, I just need to test the scripting with it because I thought that was having issues. I will be migrating the public systems over to using it when I get time to finish up the testing. IE8 is the most critical because without it you can only run one instance at a time which cuts my capacity in half on the current test systems.

Great! Let me know when you have it tested enough - I’ll be happy to use it.

I’m also thinking about looking into YSlow automation issues as well - there are just a few tiny problems that give me troubles.

Hi,

I’m currently trying to set up a hosted pagetest but there seems to be a problem with the 2.0.0.202 browser addon in the IE 8 (german version). The requested URL is giving an download window with an error. something like “/ from www.berlin.de could not be downloaded” :huh:

PS: the mod_header needs to be enabled in your demo httpd.conf to allow the included .htaccess to work

Sorry, there were some problems with IE8 and gzipped sites with the browser plugin. Attached is build 204 which should rectify the problem. I’ll do a full release in the next couple of days as there are a few more improvements I want to make.

Thanks it’s working now.

PHP needs the GD extension as well

it looks like the “Detailed results” page takes a while to generate on my server. It uses 100% cpu for httpd on a semperon 2600+ for about 10 seconds (report on yahoo.de)
is there a quick way to speed that up apart from drilling into the php code?

There are 2 possibilities to what is eating the time:

1 - Drawing the “Connection View” graphic which is generated on the fly
2 - Doing the IP geo location lookup for each request

I’d be betting that #2 is probably what is hurting. If you rename Net/GeoLiteCity.dat to something else you can see if eliminating that helps your performance.

Do you see it on every request or is it just the first time?

Thanks for the hints. It turned out that loading the 42MB GeoIP Database was slow in the PHP stable 5.2.9-2 on windows.
After bumping the version to the 5.2.10-rc1 it was fast again.