Open Source RDBMS - Seamless, Scalable, Stable and Free

한국어 | Login |Register

Recorder Limitation


Features per OS

Due to the embedded browser component's limitation, nGrinder Recorder has a different feature set depending on OS.

Features Windows MAC Linux
Proxy O O O
Embedded Browser O △ (Crashed Frequently)
HTTPS support O X O
Flash support O X X

We're highly recommending you to use Windows when recording the user interaction. If you like to use MAC or Linux, use the separate browser with proxy settings. Refer Recorder-Recording Guide For Non Window User.

Missing Recorded Element

nGrinder Recorder does not guarantee to generate the perfectly executable scripts. It's a just helper application with which a user can easily start to write scripts. Even though nGrinder Recorder contains embedded browser component, nGrinder Recorder doesn't use this component very much much information. As you can find in nGrinder Recorder Architecture, the actual recording is performed in HTTP/HTTPS messages level not the browser events level. This causes some information loss. For example, The web pages in browsers can create cookies in javascript. nGrinder Recorder can understand cookies generated only by server but browser. Therefore this cookie processing code won't show up in the finally generated script. The users should add the client side cookie generation code by themselves.

# User need to write his own cookie handling code to complement the missing part.
threadContext = HTTPPluginControl.getThreadHTTPClientContext()
expiryDate = Date()
expiryDate.year += 10
cookie = Cookie("key", "value","localhost", "/", expiryDate, 0)
CookieModule.addCookie(cookie, threadContext)

Only information which nGrinder Recorder currently takes from the embedded browser is the click events to separate messages into the multiple pages. Following is the code generated by nGrinder Recorder.

class TestRunner:
    """A TestRunner instance is created for each worker thread."""
    def __init__(self) :
        grinder.statistics.delayReports=True
        pass
    
    def __call__(self) :
        try : 
            # Following two pages are created because a user click the mouse.
            self.page1()
            self.page2()
            grinder.statistics.forLastTest.success = 1
        except Exception, e:
            err(e.message)
            grinder.statistics.forLastTest.success = 0

    def page1(self) :
        ##########################################################################################
        # http://img.naver.net/static/newsstand/up/2012/1119/nsd102245777.gif
        ##########################################################################################
        grinder.sleep(54)
        result = request_img_naver_net.GET(
                "/static/newsstand/up/2012/1119/nsd102245777.gif",
                None,    
                headers0
            ) 
        self.checkResponse(result, 200,  "http://img.naver.net/static/newsstand/up/2012/1119/nsd102245777.gif")

        ##########################################################################################
        # http://img.naver.net/thumb.opencast/opencast01/n/a/naver_story/20130411/17442431363707.jpg
        ##########################################################################################
        self.token_type = 'f10060'  
        result = request_img_naver_net.GET(
                "/thumb.opencast/opencast01/n/a/naver_story/20130411/17442431363707.jpg?type=%s"
                    % (self.token_type),
                None,    
                headers0
            ) 
        self.checkResponse(result, 200,  "http://img.naver.net/thumb.opencast/opencast01/n/a/naver_story/20130411/17442431363707.jpg")

HTTPS messages

When users try to record HTTPS messages, The browsers may show the following security alert.

image

This alert is popped up because the proxy uses a self-signed private certificate between the browser and proxy HTTPS communication to capture HTTPS messages. The certificate issued by the web server is used only in the communication between the proxy and target web server. The proxy decodes the messages from the target server  with the valid certificate and records the messages. Then the proxy encodes the message with the The Grinder embedding self-signed certificate and sends it back to the browsers. From the perspective of browsers, browsers don’t aware of this proxy behavior. They just show the alert messages because they think the messages are encoded by the wrong certificate. Currently only IE engine among our embedded browser engines allows users to accepts the invalid certificate while browsing HTTPS sites. Which means only windows supports both HTTP and HTTPS recording. In OS X, users should use the separate browsers not embedded browser if they want to record HTTPS as well. The general web browser has a way to accept the self-signed certificate. See Recorder-How to import self signed certificates.

The messages used in the mobile devices can also be captured by setting the mobile device’s network configuration. However the most of all mobile browsers may reject the messages encoded with a private certificate. There might be no way to show these HTTPS pages in the mobile devices. If someone knows how to configure it, please let us know.

Only way to browse these is to let the proxy use the valid certificate when it returns back the HTTPS messages to the browsers. See Configuration section in Recorder-Installation.

comments powered by Disqus
Page info
viewed 2297 times
translations en
Author
posted last year by
junoyoon
Contributors
updated 9 months ago by
View revisions
Share this article