How to open TCP port 5814 on your server machine

HP software uses port 5814 to access the server machine so in case you're having trouble communicating to your license server, you may need to make this port accessible. To allow inbound access to this port, you need to set up a rule allowing access to it on your Windows Firewall settings.


To do this:
  • Start >> Windows Firewall with Advanced Security - a dialog will open with the list of firewall rules.
  • On the left pane, click on Inbound Rules. Then click on New Rule under the Actions panel. A wizard dialog will appear. 
  • Input the following: 
    • Rule Type - Port
    • Protocol - TCP
    • Specific local ports: 5814
    • Action - Allow the connection
    • Profile - check all (Domain, Private, Public)
    • Name - (any)

After finishing, you'll be able to see the rule on the list.

To check if the port is up and running, you can run telnet on command line on a client machine, here's the syntax:

telnet [IP address or machine name] [port]
Ex: telnet 123.456.7.8 5814


A blank screen will follow if the connection was successful.


If telnet is an unrecognized command, enable it by doing the following:
  • Right-click Start button
  • Open Programs and Features
  • Click Turn Windows features on or off
  • Scroll down and check Telnet Client
Share:

Updating HP UFT for Windows 10

After our machines got updated to Windows 10, we realized that we couldn't connect to our concurrent license server anymore using UFT 11.51. I sought help from Microfocus (who's handling all UFT related issues) and here's what we did to resolve the issue:
1. Install HP UFT 12.51 or above on your Windows 10 machine...

... as these are the versions supported on Windows 10. Assuming you have an existing concurrent license, you can access your software entitlements by logging in on this link.



Once you're in, navigate to your entitlements and download the installer for your desired UFT version. We used 12.51. Don't forget to uninstall any existing old versions of UFT to avoid conflict.

2. Install HPE Autopass License Server on your server machine

For UFT versions 12.50 and beyond, you need to install HPE Autopass License Server. We used to have Sentinel RMS License Manager to host our UFT license, but this only works for older versions of UFT. So yeah, no choice but to install a new server application.

Download the installer from the link below, you may be prompted to create a Micro Focus account:
https://marketplace.microfocus.com/itom/content/autopass-license-server

Once it's installed, it should be up and running on your local services.


Next we need to get a new license key installed on Autopass. Navigate to the Autopass admin portal by opening this link on your browser: https://123.456.7.8:5814/autopass (of course, replace the IP with your server IP or machine name). You'll be required to create new login credentials when it's your first time. I didn't touch anything on the Configuration page hehe. More like I didn't know what to put in there haha.

Go to License Management to retrieve your Lock Code. You need this to request for a new license key.



3. Request for a new license key that's compatible with Autopass

Now that you have your lock code, it's time to request HP support to regenerate a new license key for you. There are 2 ways to do this, and all of them requires reaching out to tech support. You can chat from someone from the support team (they're available 24/7), or you can file a service request from the dashboard.  So yeah, as much as we wanted to keep the issue completely self-solvable (aka Googlable), updating your license really requires working with someone from the inside.

Login to HP Software Support using this link: https://softwaresupport.hp.com/web/softwaresupport/welcome

Navigate to Dashboards >> Service Request >> Click on Submit New. Then it's just a matter of filling out the form to describe your problem. Let them know that you need to regenerate a new license key for HPE Autopass with the following lock code.

I filed the request with the help of their chat support. In less than a day they responded to me with the new license key. So there, once you get your new license file, go back to the Autopass portal and upload the .dat file containing the key.

After this step you can go ahead and try connecting with the concurrent license server. If it doesn't work, try to open TCP port 5814 on your server machine becuase it may be interfering with your server connection.

4. Finally: connect UFT to concurrent license server

Launch UFT and open the License Wizard (On the toolbar: Help >> License Wizard)


Enter the machine name or IP address of your concurrent license server and put 5814 on the port field. Finally, connect and install the license to be able to continue using UFT.

That's it! Big thanks to Microfocus support for responding quickly to our requests!
Share:

How to override Internet Explorer Compatibility View Settings on HTML

By adding this meta tag inside the <head> part of your script, you allow the page to emulate on Microsoft Edge (which is Windows 10's latest browser), essentially overriding IE compatibility view settings:

<meta http-equiv="X-UA-Compatible" content="IE=edge" />

Note that it should be the first thing inside your head for it to work (lol). So make sure to put it right after the <head> tag. Alternatively, but I haven't tried, if your application runs on IIS Manager you can try adding this code on web.config:

<system.webServer>
    <httpProtocol>
      <customHeaders>
        <add name="X-UA-Compatible" value="IE=edge" />
      </customHeaders>
    </httpProtocol>
</system.webServer>

Helpful link here.

This workaround works on intranet sites hosted on domains where IE compatibility view settings are applied. We have several apps deployed on a whitelisted domain that are being forced to emulate on IE 5, essentially messing up our CSS. So yep, adding a meta tag worked for me! :) Hope this helps!
Share:

How to implement SSO Windows authentication in PHP

I'm currently working on a PHP web application and would like to skip the login page by automatically authenticating a user using his Windows logon credentials. Quite simply I just wanted to get which user is currently logged in the system, and use that variable to query the database and display relevant information on the web page. By getting the authenticated username value, we eliminate the need for a login form because the user has already been authenticated the moment he logs into his computer. Ideally, intranet applications should be using single sign on to avoid redundancy in forms. But LDAP authentication should still be present to handle certain scenarios that still need login screens. So here's how to implement it if you're running a PHP web application served using IIS manager.

What you need to do is enable Windows Authentication on IIS manager and use $_SERVER['AUTH_USER'] on PHP to retrieve the windows logged-in user:

If you don't have Windows Authentication installed on IIS, here's how.
  • Open Server Manager (Start > All Programs > Administrative Tools > Server Manager)
  • Navigate to Roles > Web Server (IIS)
  • Right-click on Web Server (IIS) and select Add Role Services. 
  • Scroll down on the list of services and find Windows Authentication under Security.
  • Select and install.


Once Windows Authentication is installed, go to IIS Manager, navigate to your site and enable it under IIS > Authentication. Also make sure to disable Anonymous Authentication to avoid conflict.



Now to back to your PHP code, as mentioned, $_SERVER['AUTH_USER']returns the domain and username of the currently logged in person, ie: DOMAIN\myusername01

If you want to extract just the username, you can use PHP's str_replace() function, ie:

str_replace("DOMAIN\\","",$_SERVER['AUTH_USER']);

This returns the naked username, which you can then use to query your database for validation.

That's it, hope this helps! :)
Share:

QTP/UFT unable to recognize toolbar and menu items

I'm trying to record a desktop application and noticed that UFT won't pick up activity from the menu bar. It's able to record the app being opened but it doesn't detect when I clicked on File then Exit, for example.



In use: HP UFT 11:50

Here's what worked for me: On Record >> Record and Run Settings >> Under Windows Applications tab:
Select "Record and run test on any open Windows-based application". Click Apply then OK.


After the change, it's now able to record toolbar activity, yey!


Hope it works out for you too! :)
Share:

Start Recording button disabled in HP LoadRunner Vugen 11.50

I was trying to record a web application using Web/Http protocol, but somehow I couldn't begin recording because the "Start Recording" button is disabled.


Current setup:
HP LoadRunner Vugen 11.50
Internet Explorer 11 Cause:
Internet Explorer 11 is not supported by Vugen 11.50

Possible solutions:

  1.  Downgrade to Internet Explorer 10 or
  2. Upgrade to LoadRunner Vugen 12.00 or
  3. Install LoadRunner 11.52 service pack - this worked for me! I can't simply upgrade to Vugen 12 because it's team standard, and IE11 is the company standard browser hehe. In short I can't touch those two. Helpful links here and here.
Share:

How to add a 'Back to Top' button on your blog with smooth scrolling (for Blogger)


This isn't something new, I picked this up from here and thought I should make a guide of my own specifically for Blogger users like myself.

Features
  • 'Back to Top' button that fades into view at the bottom right corner of the page as you scroll down
  • Fades out when you reach the top
  • Smooth scrolling
  • HTML, CSS, JQuery, FontAwesome
Code

Part 1: CSS

On Blogger >> Dashboard >> Template >> Edit HTML
Go to the CSS section of your blog and insert the code below:

.back-to-top {
    display:none;
    position: fixed;
    bottom: 2em;
    right: 10px;
    text-decoration: none;
    color: rgb(207, 72, 94);
    font-size: 12px;
    padding: 1em;
}

.back-to-top:hover {
    text-decoration:none;
    color: rgba(207, 72, 94, 0.8);
}

If you can't find where to put it, search for this ]]></b:skin> and paste the code above it.

You can edit the color and size of the button by changing the values in red and blue respectively. Unless you want a different hover color, keep the two RGB values the same. The alpha value (0.8) tells how transparent the button becomes when you hover on it.
Part 2: JQuery

Still inside the HTML code, paste the code below inside the <head> portion of your template

<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>

If it's already existing, no need to do this.

Part 3: HTML

Still inside the editor, paste the code below directly above the </body> tag.

<a href="#" class="back-to-top">Back to Top</a>
<script>
 jQuery(document).ready(function(){
  var offset = 220;
  var duration = 500;
  jQuery(window).scroll(function(){
   if (jQuery(this).scrollTop() > offset) {
    jQuery('.back-to-top').fadeIn(duration);
   } else {
    jQuery('.back-to-top').fadeOut(duration);
   }
  });

  jQuery('.back-to-top').click(function(event){
   event.preventDefault();
   jQuery('html, body').animate({scrollTop: 0}, duration);
   return false;
  })
 });
</script>

You may replace 'Back to Top' with any icon you want. In my case, I used an icon from FontAwesome and replaced the text in purple with this:

<i aria-hidden='true' class='fa fa-arrow-circle-up' style='font-size:50px'/>

Bonus: FontAwesome

It's basically a set of web fonts featuring scalable vector icons. In short, just a bunch of icons turned into fonts so you don't need to use an image every time you need one. Awesome!

To use FontAwesome, you must first install it like you did with JQuery by adding the line below inside the <head> portion of your template

<link href='https://maxcdn.bootstrapcdn.com/font-awesome/4.6.0/css/font-awesome.min.css' rel='stylesheet'/>

 Then choose the icon you want from here and get the corresponding markup in order to display it.

Done!

Save the HTML code of your blog and check to see if it works. :)
Share:

CSS Horizontal drop-down menu

Here's how you can create a horizontal navigation bar with drop-down feature using CSS. The limitation of this code is that it can only handle 1 level of sub menu. So if you intend you create more levels, you have to add to the code.

See jsfiddle here


CSS properties will vary depending on your existing layout and styles, but basically the horizontal drop-down menu works by converting an unordered vertical list into a horizontal one, and hiding any sub list from sight until the parent is hovered by the mouse.
Share:

Recording video applications using Ajax Truclient protocol

Version: HP Vugen 11.52
Protocol: Ajax Truclient IE

I had a recent task where the project team wanted to know how long it takes for several concurrent users to play a certain video. The goal really is to see how much buffering is happening as the users are increased, and if the server can handle it. The video is housed on Kaltura platform and by their specs, there's not one specific URL source for the video. The video file is chopped into chunks and delivered to several locations where the engine decides where best to host the files. This means we can't use the MediaPlayer protocol as it requires a single source URL.


Would be pretty cool to explore this protocol. But turns out we don't have a license for it so nevermind haha.

Trying out with Web/Http

At first we tried recording the application via good ol' Web/Http protocol. But there's no data that would compute for buffering time, so we moved on. The numbers we're getting from this method are response times from fetching the video resource and that barely says anything about the buffering time, so nope, wouldn't work. As much as possible we try to work on Web/Http first before trying Truclient because it eats up a lot of resources. That means we can't put too much users per load generator. Right now we only have 4 operational load gens, so the amount of users we can run on this test would be compromised by the protocol. However, Ajax Truclient is really the protocol we need, as advised by Protocol Advisor too (which is lost in Vugen 12!)

Moving on with Ajax Truclient IE

So Ajax it is! The steps are really simple, we load the URL then click on the play button then measure the transaction time from there.



As the video plays, the script waits for something that indicates the video has finished playing. In this case, the replay button. We end the transaction at that point.



Note that you have to adjust the timeout settings for waiting the replay button. Use the video duration and add an allowance for waiting. In this example, the video duration is almost 2 minutes or 119 seconds. To be safe, I'm putting a timeout of 300 seconds to allow the video to finish. You don't want your wait step to timeout while the video is still playing. Adjust this number according to how you see fit.

That's pretty much it! The response times we're getting for the Play transaction is definitely within the video duration range plus some considerable delay, probably due to network issues and whatnot, so yep - we're done here!

Blah

This is my first time to record a video application and believe me, it didn't come out this easy. The strategy was there but for some reason the network wouldn't cooperate with me! I worked on this application for weeks and weeks because the video just wouldn't load on my end. One time I'm getting a certificate error, the other time it's a 404, I have no idea what's keeping me from the playing the video. But anyhow, we changed seats and suddenly, the video started playing! So maybe it's just a damned network thing lol.

:)
Share:

Welcome

Welcome to Surf and Perf! I made this blog to document some of the issues I encountered doing Performance Testing. I really just wanted a more organized way to look back at my notes haha. I'm no Performance Testing guru so the solutions you'll see here are more trial and error on my part. But hopefully it helps you out somehow! :)

So there. Stay tuned. I'm still trying to figure out the layout of this blog hehe, and I still need to install a proper code snippet formatter cos don't we all love copy-pasting mono-spaced code blocks?

:)
Share: