» tagged pages
» logout

sorted by: recent | see : popular
Content Tagged with from + Web

User:martjack

MartJack – Internet & Mobile Targeted Marketing for Manufacturers, Retailers & Single Store Owners

MartJack – Innovative Multi channel marketing solutions for Manufacturers, Retailers and single store owners to enhance sales and build Brand through effective online channel presence.

Velocity Conference Roundups

Here are some highlights from the recent Velocity Conference: Bill Scott wrote in his article Looks Good Works Well: Velocity Conference ‘08 Notes that the highlights for him were: Building Faster Pages in Firefox and Internet Explorer - This is not the same presentation as was presented & Mozilla’s is missing, hopefully they will post their slides. Even [...]

User:cweiblen: PerformanceEngineer.com

New JMeter Articles

A couple articles about JMeter this week: Tim posted some great JMeter tips and tricks on his blog TSS has a new article, Master Apache JMeter and learn all its features with new book, introducing a new JMeter book: A bad response time on a website can drive away visitors and prospective customers. To measure what a website [...]

User:cweiblen: PerformanceEngineer.com

Apache JMeter 2.3.2 Released

Version 2.3.2 of Apache JMeter has been released. For details of new features and fixes, please see the JMeter web site. Download JMeter

User:cweiblen: PerformanceEngineer.com

Tools to Develop Faster Web Pages

Jacob Gube just published "15 Tools to Help You Develop Faster Web Pages" at sixrevisions.com. It gives a nice list and high level overview of free tools that are useful for web performance. It includes such tools as load generators, profilers, and debugging proxies.

Pylot (my tool) made his list.. so go have a look!

His description:
"Pylot is an open-source performance and scalability testing tool. It uses HTTP load tests so that you can plan, benchmark, analyze and tweak performance. Pylot requires that you have Python installed on the server - but you don’t need to know the language, you use XML to create your testing scenarios."

User:cweiblen: PerformanceEngineer.com

Processor Utilization is Meaningless

Okay, maybe not totally meaningless, but the way that many people use the metric certainly is meaningless. This is especially apparent when it comes to what some believe is a black art - Capacity Planning. This ties back to my first blog entry when I spoke of how often simple upgrades go horribly wrong.

read more

User:cweiblen: PerformanceEngineer.com

J2EE Applications Performance Monitoring using insideApps

deterMyne's insideApps enables the IT teams to look into the J2EE applications - inside out and help resolve performance problems without guessing the cause using recent JVM monitoring features.

User:cweiblen: PerformanceEngineer.com

Pylot - Web Performance Tool - 0.2 Beta Release

I just quietly did a release of Pylot (my open source web performance tool).  You can grab it here.

User:cweiblen: PerformanceEngineer.com

DTrace isn’t just for Solaris 10

I am not just talking about MacOS X or FreeBSD here. DTrace works great for Solaris versions prior to Solaris 10 as well. In fact, it works great for Linux and Windows too.

read more

User:cweiblen: PerformanceEngineer.com

Performance Models: Software versus System

JXInsight is a comprehensive performance management and problem diagnostics solution that unlike most other competing solutions can be used across all application life cycle phases - from development through to production. Unfortunately this benefit p...

User:cweiblen: PerformanceEngineer.com

Pylot Dev Update - Web Performance - Release 1.0

Finally did the version 1.0 release! visit www.pylot.org to download. Pylot is still lacking some features I want to add for it to become a serious performance/load testing tool, but the current release delivers very usable...

User:cweiblen: PerformanceEngineer.com

20 New Rules for Faster Web Pages

Update: Nice explanation in The importance of bandwidth versus latency of how long latencies cause cascading delays in resource loading. Doloto tries to optimize how resources are loaded.

Twenty new rules have been added to the original 14 rules for sizzling web performance. Part of scalability is worrying about performance too. The front-end is where 80-90% of end-user response time is spent and following these best practices improved the performance of Yahoo! properties by 25-50%. The rules are divided into server, content, cookie, JavaScript, CSS, images, and mobile categories. The new rules are:

read more

User:cweiblen: PerformanceEngineer.com

Testing for performance

The third and final article in my SearchSoftwareQuality.com Testing for Performance series posted. The complete series can be found here: Testing for performance, part 1: Assess the problem space Testing for performance, part 2: Build out the test assets Testing for performance, part 3: Provide information

User:cweiblen: PerformanceEngineer.com

Automation for the people: Hands-off load testing

Load testing is often relegated to late-cycle activities, but it doesn't need to be that way. In this installment of Automation for the people, automation expert Paul Duvall describes how you can discover and fix problems throughout the development cycle by creating a scheduled integration build that runs JMeter tests.

User:cweiblen: PerformanceEngineer.com

Podcast: "Diving into Capacity Planning"

A podcast that I did for TeamQuest Corporation, back in December, is now available. It's a somewhat unconventional take on the motivations for doing CaP, based on taking into account the apparently frustrating but otherwise very realistic perspective o...

User:cweiblen: PerformanceEngineer.com

Hands-off Load Testing with JMeter and Ant

Automation expert Paul Duvall highlights in a recent post the value of earlier and continuous integration of load tests throughout the development cycle and presents simple step-by-step techniques to create a scheduled integration build that runs JMeter tests. By Alexander Olaru

User:cweiblen: PerformanceEngineer.com

StickyMinds.com Weekly Column: Peeling the Performance Onion

Performance tuning is often a frustrating process, especially when you remove one bottleneck after another with little performance improvement. Danny Faught and Rex Black describe the reasons why this happens and how to avoid getting into that situation. They also discuss why you can't work on performance without also dealing with reliability and robustness.

User:cweiblen: PerformanceEngineer.com

Roll Your Own SiteScope, a Simple Alternative

In working with SiteScope of late, I’ve found that it doesn’t always collect performance metrics the way I want to. More importantly, it can often turn a simple monitoring activity into a complex disaster. Take monitoring via JMX for example. In Si...

User:cweiblen: PerformanceEngineer.com

Multiple Dimensions of Performance Testing

Almost all experts agree that pre-deployment "waterfall" performance testing (which, with the record/playback method, confused by many as the performance testing itself) is not enough - too little, too late. Actually it is just one very specific way of performance testing - with a full spectrum of other approaches, which are used so infrequently (at least as intentional performance testing techniques) that I don't recall finding any good classification. Thinking about it, I see several dimensions of performance testing which, although definitely correlated, probably might be considered somewhat independently - of course, just a raw idea for the moment, just an effort to order thoughts a little.

User:cweiblen: PerformanceEngineer.com

Python - RRDTool Utilities (module and scripts for RRDs)

I started a project on Google Code to create a set of Python tools to make dealing with Round Robin Databases (RRD) less painful.  Setting up RRD's can be tough if you don't know what you are doing. anyone interested can check it out here:...

User:cweiblen: PerformanceEngineer.com

Examples on LoadRunner Regular Expressions

I'm going to show and explain how to use Regular Expressions in LoadRunner.

Introduction:
The present article is a summarizing of the LoadRunner Regular Expressions challenge and its results. Also, I added code for RegExp patterns/subpatterns matching.
All LoadRunner Regular Expressions functions are shown with examples.


Outline:
  1. How to check - whether RegExp pattern matches against a text or not
  2. How to get a matched strings (RegExp patterns and subpatterns)

How to check - Whether RegExp pattern matches against a text or not


I thanks Charlie Weiblen and Tim Koopmans for the solution. I modified it slightly.
So, here it is:
  1. Download and unpack Binaries and Developer files for PCRE (Perl Compatible Regular Expressions).
    These and others files are available on Pcre for Windows page.

  2. Unzip downloaded archives into c:\pcre
  3. ?omment out the include for stdlib.h file in:
    • C:\pcre\include\pcre.h
    • C:\pcre\include\pcreposix.h
  4. In your LoadRunner script, add to globals.h:
    • #include "c:\\pcre\\include\\pcre.h"
    • #include "c:\\pcre\\include\\pcreposix.h"
  5. Add the match() function to vuser_init section:
    //////////////////////////////////////////////////////////////////////////
    /// 'match' function matches a 'pattern' against a given 'subject'
    /// It returns 1 for a match, or 0 for a non-match / error
    int match(const char *subject, const char *pattern)
    {
        int rc;            // Returned code
        regex_t re;        // Compiled regexp pattern
        
        lr_load_dll("c:\\pcre\\bin\\pcre3.dll");
        
        if (regcomp(&re, pattern, 0) != 0)
            return 0;     // Report error
        
        rc = regexec(&re, subject, 0NULL0);
        regfree(&re);

        if (rc != 0)
            return 0;     // Report error
        else
            return 1;
    }

  6. Let's run sample LoadRunner script and check the result:
    As you can see, match() function works correctly. Using match() function, you can check - whether RegExp pattern matches against a text or not.

    It can be helpful, when you verify in LoadRunner that the text (RegExp pattern) matches the text on a downloaded page.

    I tested the match() function with different patterns and subject strings:
    #
    Subject string
    Patterns
    Result of
    match()
    Is correct
    result?
    1
    abcdefb(c(.*))e
    1
    Yes
    2
    abcdef
    b(z(.*))e
    0
    Yes
    3
    2008
    \\d{2,5}
    1
    Yes
    4
    2008
    \\d{5}
    0
    Yes
    5
    abc 1st of May 2008xyz
    \\d.*\\d
    1
    Yes
    Note: Since LoadRunner uses ANSI C language, please do not forget to double backslashes (\\). For example, to match any digit character (0-9), use pattern "\\d".

    match() function is simple enough. But it searches only and it cannot extract matched subpatterns from the text. For example, we have to extract the name of month from these strings:
    • "abc 1st of May 2008xyz"
    • "abc 25th of February 2031"
    • etc
    We can use the following pattern:
    • \d.+([A-Z]\w+)\s+\d{4}

    The name of month will be matches by subpattern ([A-Z]\w+). How to extract the found text? You can use matchex() function for that. Let's discuss it in details...

How to get a matched strings (RegExp patterns and subpatterns)

To get a matched (found) strings, we have to update our match() function.
That's why I created matchex() ('match' EXtended) function.
  1. Add the matchex() function to vuser_init section
    //////////////////////////////////////////////////////////////////////////
    /// 'matchex' (EXtended) function matches a 'pattern' against a given 'subject'
    /// It returns number of matches:
    ///     0 - for a non-match or error
    ///     1 and more - for successful matches
    int matchex(const char *subject, const char *pattern, int nmatch, regmatch_t *pmatch)
    {
        int rc;            // Returned code
        regex_t re;        // Compiled regexp pattern

        lr_load_dll("c:\\pcre\\bin\\pcre3.dll");

        if (regcomp(&re, pattern, 0) != 0)
            return 0;     // Report error

        rc = regexec(&re, subject, nmatch, pmatch, 0);
        pcre_free(&re);    // Release memory used for the compiled pattern

        if (rc < 0)
            return 0;     // Report error

        // Get total number of matched patterns and subpatterns
        for (rc = 0; rc < nmatch; rc++)
            if (pmatch[rc].rm_so == -1)
                break;

        return rc;
    }

  2. Let's run sample LoadRunner script and check the result:
    matchex() function returns a number of matched patterns/subpatterns and fill an array in with information about each matched substring.


    What is an information about each matched substring?


    This info contains the offset (rm_so) to the first character of each substring and the offset (rm_eo) to the first character after the end of each substring, respectively.

    Note1:
    The 0th element of the array relates to the entire portion of string that was matched.
    Note2: Subsequent elements of the array relate to the capturing subpatterns of the regular expression.
    Note3: Unused entries in the array have both structure members set to -1.

    Let's investigate it on out example. This is our subject string:
    The replay log shows offsets for matched substrings:
    • Action.c(7): Matched 3 patterns
    • Action.c(10): Start offset: 1, End offset: 6
    • Action.c(10): Start offset: 2, End offset: 5
    • Action.c(10): Start offset: 3, End offset: 5

    Start offset: 1 and End offset: 6 match substring "bcdef".
    Note4: End offset is the first character after the end the current substring. That's why character "g" (with index 6) is not a part of matched string.

    As I've written in Note1, "bcdef" is the entire portion of string that was matched.
    Others items from an array relate to matched subpatterns.


    What is a subpattern in Regular Expression?

    It is a part of the RegExp pattern surrounded with parenthesis - "(" and ")".

    It's easy to get out the order of subpatterns. Just look through your pattern from left to right. When you find an open parenthes, this is a start of the current subpattern.
    Subpattern can be embedded.

    So, others captured subpatterns are:
    • Start offset: 2, End offset: 5 matches substring "cde".
      Note: current subpattern is "([acqz](.*))".
    • Start offset: 3, End offset: 5 match substring "de".
      Note: current subpattern is "(.*)".

    As you can see - this is not so difficult. :)
    Regular Expressions can be very powerful and useful in LoadRunner.

Another example:

Let's practise with an example I mentioned early:
For example, we have to extract the name of month from these strings:
  • "abc 1st of May 2008xyz"
  • "abc 25th of February 2031"
  • etc
We can use the following pattern:
  • \d.+([A-Z]\w+)\s+\d{4}
The name of month will be matches by subpattern ([A-Z]\w+).

Please, see LoadRunner script, which captures and prints name of months:
Note: Pay attention that I use arr[1] to get info about substring.
As you remember, arr[0] contains info about the entire matched pattern, arr[1], arr[2], and so on contain info about matched subpattern.


Summary:
I've explained, shown and demonstrated how to use Regular Expressions (RegExp) in LoadRunner.
I hope, this knowledge will help you to create advanced LoadRunner scripts.

--
Thank you, my readers!
Dmitry Motevich

User:cweiblen: PerformanceEngineer.com

Open Source Troubleshooting for Java

VisualVM is an OpenJDK project from Sun to create an all-in-one troubleshooting tool for Java applications. The tool is a combination of several existing tools and newer profiling capabilities. By Craig Wickesser

User:cweiblen: PerformanceEngineer.com

determyne Releases Open Source J2EE Performance Monitoring Tool

determyne Inc. has announced the technology preview of an open source transaction-level performance monitoring solution for J2EE applications. insideApps is an end-to-end transaction tracing and reporting system that enables you to centrally and automatically monitor the performance of your J2EE applications. In contrast to the traditional approach of collecting and displaying aggregated metrics for different system components, insideApps focuses on monitoring applications from a transactions perspective.

User:cweiblen: PerformanceEngineer.com

Post-Deployment Slowdown?

In this month’s issue of Software Test and Performance, Michele Kennedy shares a great experience report on troubleshooting performance issues. It includes some great tips, recommends some free tools, and includes some real examples. It’s a good read. I wish more performance testing articles were written this way - real examples.

User:cweiblen: PerformanceEngineer.com

Article: Scalability Principles

At the simplest level, scalability is about doing more of something. This could be responding to more user requests, executing more work or handling more data. This article presents some principles and guidelines for building scalable software systems. By Floyd Marinescu

User:cweiblen: PerformanceEngineer.com

Apache Web server Useful Tips

Hide PHP Version in Apache from remote users requests

In order to prevent PHP from exposing the fact that it is installed on the server, by adding its signature to the web server header we need to locate in php.ini the variable expose_php and turn it off.
By default expose_php is set to On.

In your php.ini (based on your Linux distribution this can be found in various places, like /etc/php.ini, /etc/php5/apache2/php.ini, etc.) locate the line containing “expose_php On” and set it to Off:

expose_php = Off

After making this change PHP will no longer add it’s signature to the web server header. Doing this, will not make your server more secure… it will just prevent remote hosts to easily see that you have PHP installed on the system and what version you are running.

How to get web server software and version of a remote server

This can be achieved in many ways, but the simplest one in my opinion is to use a basic telnet connection on port 80 to the remote server and issue a regular request like “HEAD / HTTP/1.0” (I will use HEAD because we don’t care about the content):

telnet remote_server.com 80
Trying remote_server.com…
Connected to remote_server.com.
Escape character is ‘^]’.
HEAD / HTTP/1.0

HTTP/1.1 200 OK
Date: Fri, 19 Jun 2006 08:18:06 BST
Server: Apache/2.0.55 (Debian) PHP/5.1.2-1+b1 mod_ssl/2.0.55 OpenSSL/0.9.8b
Connection: close
Content-Type: text/html; charset=UTF-8

Connection closed by foreign host.

or

Another tip about GET , HEAD….
lwp-request, GET, HEAD, POST - Simple WWW user agent

HEAD remote_server.com
200 OK
Connection: close
Date: Fri, 09 Jun 2006 11:17:33 GMT
Server: Apache/2.0.55 (Debian) PHP/5.1.2-1+b1 mod_ssl/2.0.55 OpenSSL/0.9.8b
Content-Type: text/html; charset=UTF-8
Client-Date: Fri, 09 Jun 2006 15:13:39 GMT
Client-Peer: 192.23.0.12:80
Client-Response-Num: 1
X-Powered-By: PHP/5.1.2-1+b1

So as you can see, it is so simple to find out that this server is using: Debian as OS (from the other versions we can assume it is Etch version), Apache 2.0.55 as web server, PHP 5.1.2, and OpenSSL 0.9.8b.

How to hide some files from appearing in directory indexes

to prevent certain files from appearing in directory indexes, in case this needs to remain enabled. This is particularly useful for non html files (or raw files not parsed by apache and returned as a html to the browser), for example: php include files, libraries (that will not have the extension php), or log files, or any other file that you might want to prevent the users to easily see in the browser.

Normally I will disable directory indexes, and this will not be needed, but in case you have to keep directory indexes ON for some reason, then it is a good idea to hide some files from showing in the directory indexes.
This will not prevent peoples to download the files as long as they know (or guess) the file name/location, it will just hide the files from the index generation. Some good examples of what files to hide like this:

.htaccess (for obvious reasons)
*.bak *~ (this can lead to download the source of some parsed web files that are saved as backup files)
RCS CVS *,v *,t (hide cvs related files)
*.inc (or whatever files extensions you might use to include in regular php files)

These are just examples and you should use this directive based on your particular need.

IndexIgnore

We will use the apache directive IndexIgnore to hide the list of files. Since this can be used in global configuration and also in virtual host configuration, per directory or in .htaccess it is useful to know that any new IndexIgnore line will actually add the files to the list of hidden files and not overwrite a previous definition. So you can choose this as you see it fit (add them all in one place in a single line, or have more ignore list defined, etc.). To achieve our sample here is how we will hide the file types from above to appear in directory indexes:

IndexIgnore .htaccess
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
IndexIgnore *.incOr the same thing in one single line:

IndexIgnore .htaccess .??* *~ *# HEADER* README* RCS CVS *,v *,t *.incSome Linux distributions will include some defaults for this directive, but in case you have directory indexes ON you should really look into this directive and add the files you don’t want the users to see in a browser in a directory index

Hide apache software version

If you want to hide apache software version for security reasons you need to use ServerTokens and ServerSignature directives. Basically to provide only a minimal amount of information we will set this in the main config to:

ServerTokens ProductOnly
ServerSignature Off

Tags: , , , , , , , ,

Debian: Debian Admin Step By Step Tutorials and articles with screenshots

Apache Web server Useful Tips

Hide PHP Version in Apache from remote users requests

In order to prevent PHP from exposing the fact that it is installed on the server, by adding its signature to the web server header we need to locate in php.ini the variable expose_php and turn it off.
By default expose_php is set to On.

In your php.ini (based on your Linux distribution this can be found in various places, like /etc/php.ini, /etc/php5/apache2/php.ini, etc.) locate the line containing “expose_php On” and set it to Off:

expose_php = Off

After making this change PHP will no longer add it’s signature to the web server header. Doing this, will not make your server more secure… it will just prevent remote hosts to easily see that you have PHP installed on the system and what version you are running.

How to get web server software and version of a remote server

This can be achieved in many ways, but the simplest one in my opinion is to use a basic telnet connection on port 80 to the remote server and issue a regular request like “HEAD / HTTP/1.0” (I will use HEAD because we don’t care about the content):

telnet remote_server.com 80
Trying remote_server.com…
Connected to remote_server.com.
Escape character is ‘^]’.
HEAD / HTTP/1.0

HTTP/1.1 200 OK
Date: Fri, 19 Jun 2006 08:18:06 BST
Server: Apache/2.0.55 (Debian) PHP/5.1.2-1+b1 mod_ssl/2.0.55 OpenSSL/0.9.8b
Connection: close
Content-Type: text/html; charset=UTF-8

Connection closed by foreign host.

or

Another tip about GET , HEAD….
lwp-request, GET, HEAD, POST - Simple WWW user agent

HEAD remote_server.com
200 OK
Connection: close
Date: Fri, 09 Jun 2006 11:17:33 GMT
Server: Apache/2.0.55 (Debian) PHP/5.1.2-1+b1 mod_ssl/2.0.55 OpenSSL/0.9.8b
Content-Type: text/html; charset=UTF-8
Client-Date: Fri, 09 Jun 2006 15:13:39 GMT
Client-Peer: 192.23.0.12:80
Client-Response-Num: 1
X-Powered-By: PHP/5.1.2-1+b1

So as you can see, it is so simple to find out that this server is using: Debian as OS (from the other versions we can assume it is Etch version), Apache 2.0.55 as web server, PHP 5.1.2, and OpenSSL 0.9.8b.

How to hide some files from appearing in directory indexes

to prevent certain files from appearing in directory indexes, in case this needs to remain enabled. This is particularly useful for non html files (or raw files not parsed by apache and returned as a html to the browser), for example: php include files, libraries (that will not have the extension php), or log files, or any other file that you might want to prevent the users to easily see in the browser.

Normally I will disable directory indexes, and this will not be needed, but in case you have to keep directory indexes ON for some reason, then it is a good idea to hide some files from showing in the directory indexes.
This will not prevent peoples to download the files as long as they know (or guess) the file name/location, it will just hide the files from the index generation. Some good examples of what files to hide like this:

.htaccess (for obvious reasons)
*.bak *~ (this can lead to download the source of some parsed web files that are saved as backup files)
RCS CVS *,v *,t (hide cvs related files)
*.inc (or whatever files extensions you might use to include in regular php files)

These are just examples and you should use this directive based on your particular need.

IndexIgnore

We will use the apache directive IndexIgnore to hide the list of files. Since this can be used in global configuration and also in virtual host configuration, per directory or in .htaccess it is useful to know that any new IndexIgnore line will actually add the files to the list of hidden files and not overwrite a previous definition. So you can choose this as you see it fit (add them all in one place in a single line, or have more ignore list defined, etc.). To achieve our sample here is how we will hide the file types from above to appear in directory indexes:

IndexIgnore .htaccess
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
IndexIgnore *.incOr the same thing in one single line:

IndexIgnore .htaccess .??* *~ *# HEADER* README* RCS CVS *,v *,t *.incSome Linux distributions will include some defaults for this directive, but in case you have directory indexes ON you should really look into this directive and add the files you don’t want the users to see in a browser in a directory index

Hide apache software version

If you want to hide apache software version for security reasons you need to use ServerTokens and ServerSignature directives. Basically to provide only a minimal amount of information we will set this in the main config to:

ServerTokens ProductOnly
ServerSignature Off

Tags: , , , , , , , ,

Debian: Debian Admin Step By Step Tutorials and articles with screenshots