<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Jag (Jagjeet) Singh</title>
    <description>The latest articles on DEV Community by Jag (Jagjeet) Singh (@jagjohal).</description>
    <link>https://dev.to/jagjohal</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1052902%2Fbb093b7c-a81e-4d8a-8419-0f837291068c.png</url>
      <title>DEV Community: Jag (Jagjeet) Singh</title>
      <link>https://dev.to/jagjohal</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jagjohal"/>
    <language>en</language>
    <item>
      <title>Mastering API Testing with Charles Proxy: How to Monitor and Manipulate HTTP Traffic like a Pro</title>
      <dc:creator>Jag (Jagjeet) Singh</dc:creator>
      <pubDate>Thu, 30 Mar 2023 14:16:26 +0000</pubDate>
      <link>https://dev.to/jagjohal/mastering-api-testing-with-charles-proxy-how-to-monitor-and-manipulate-http-traffic-like-a-pro-39d8</link>
      <guid>https://dev.to/jagjohal/mastering-api-testing-with-charles-proxy-how-to-monitor-and-manipulate-http-traffic-like-a-pro-39d8</guid>
      <description>&lt;p&gt;Hello and welcome! Today, I want to talk about an essential tool that everyone should have in their arsenal for testing APIs: Charles Proxy. If you’re not already using Charles Proxy, you’re missing out on a powerful tool that can help you monitor and manipulate HTTP traffic like a pro.&lt;/p&gt;

&lt;p&gt;But first, let’s talk a bit about what APIs are and why testing them is so crucial. APIs (Application Programming Interfaces) are essentially the glue that holds the internet together. They allow different software applications to communicate with each other, exchanging data and functionality seamlessly. Testing APIs ensures that they are working as intended and that the data exchange is happening correctly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is Charles Proxy?&lt;/strong&gt;&lt;br&gt;
Charles Proxy is a web debugging proxy tool that allows you to monitor and manipulate HTTP and HTTPS traffic between your computer and the internet. Charles acts as a middleman between your computer and the internet, intercepting and recording all HTTP and HTTPS requests and responses. With Charles, you can see exactly what is happening between your computer and the internet, including the headers, request and response bodies, cookies, and more.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2v8w5gjrbkj502lwik4n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2v8w5gjrbkj502lwik4n.png" alt="Charles Proxy Architecture"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Why should you use Charles Proxy?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It is compatible with Windows, Mac OS, and Linux operating systems, making it accessible to users on various platforms.&lt;/li&gt;
&lt;li&gt;Several companies use Charles Proxy as their preferred tool for monitoring and analyzing network traffic.&lt;/li&gt;
&lt;li&gt;Charles Proxy has a user-friendly interface, which makes it easy to use for both beginners and experienced users.&lt;/li&gt;
&lt;li&gt;It allows you to trace the origin and path of information transmitted over a network, which can be useful for debugging or testing purposes.&lt;/li&gt;
&lt;li&gt;You can use Charles Proxy to debug and diagnose network issues and to identify and troubleshoot problems that may arise during the development of web applications or websites.&lt;/li&gt;
&lt;li&gt;Charles Proxy comes with a trial version, which allows you to test its features and capabilities before committing to a purchase.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In this blog, we will discuss how to install Charles Proxy and use it for API testing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Installing Charles Proxy:&lt;/strong&gt;&lt;br&gt;
Note: These instructions are for downloading Charles Proxy on a Mac, but you can select the appropriate instructions for your machine.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Visit Charles Proxy website (&lt;a href="https://www.charlesproxy.com/download/" rel="noopener noreferrer"&gt;https://www.charlesproxy.com/download/&lt;/a&gt;) and click on the Download button under the Mac section.&lt;/li&gt;
&lt;li&gt;Open the Charles Proxy disk image file by double-clicking on it. This will mount the disk image and show the Charles Proxy installer package.&lt;/li&gt;
&lt;li&gt;Double-click on the Charles Proxy installer package to start the installation process.&lt;/li&gt;
&lt;li&gt;Follow the instructions in the installation wizard to complete the installation. You may need to agree to the terms and conditions and select the installation directory.&lt;/li&gt;
&lt;li&gt;After the installation is complete, open Charles Proxy from the Applications folder or by using Spotlight search.&lt;/li&gt;
&lt;li&gt;Charles Proxy should automatically set up your system to use it as a proxy. If not, you may need to configure your browser or device to use Charles Proxy as the proxy server. You can find instructions for configuring different browsers and devices on the Charles Proxy website.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwkc4u8j0sepb9e2qlumb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwkc4u8j0sepb9e2qlumb.png" alt="End User Agreement"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjmyoingprvxajtt4t8qj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjmyoingprvxajtt4t8qj.png" alt="Charles Dashboard Screen"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Setting up Charles&lt;/strong&gt;&lt;br&gt;
To install the Charles root certificate on a Mac, follow these steps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Launch the Charles proxy application.&lt;/li&gt;
&lt;li&gt;Click on the “Help” menu, and then select “SSL Proxying” &amp;gt; “Install Charles Root Certificate”.&lt;/li&gt;
&lt;li&gt;A message will appear asking if you want to install the Charles Root Certificate. Click “Install” to proceed.&lt;/li&gt;
&lt;li&gt;The Keychain Access application will launch automatically, displaying the Charles Proxy SSL Root Certificate.&lt;/li&gt;
&lt;li&gt;Double-click on the Charles Proxy SSL Root Certificate to open its details.&lt;/li&gt;
&lt;li&gt;Expand the “Trust” section, and set the “When using this certificate” option to “Always Trust”.&lt;/li&gt;
&lt;li&gt;Close the certificate details window, and enter your system password when prompted to confirm the changes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once you have completed these steps, the Charles Root Certificate should be installed and trusted on your Mac, and you should be able to use Charles to intercept and analyze SSL traffic.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk85d034kje92hinr8nuc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk85d034kje92hinr8nuc.png" alt="Install Certificate"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdsijmkga8w3nvtq9dhs5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdsijmkga8w3nvtq9dhs5.png" alt="Get Info"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftaznlcjl1s7ofos9lh4x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftaznlcjl1s7ofos9lh4x.png" alt="Always Trust Certificate"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;So, how can you use Charles Proxy to master API testing? Here are some tips to get you started:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Monitor API Traffic:&lt;/strong&gt; Use Charles Proxy to monitor HTTP traffic between your application and the server. This can help you identify issues with your API calls, such as slow response times, errors, or unexpected behavior.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Request and Response Filtering:&lt;/strong&gt; Charles Proxy allows you to filter HTTP requests and responses based on various criteria, such as URL, response status code, response body content, and more.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Modify Requests and Responses:&lt;/strong&gt; Use Charles Proxy to modify HTTP requests and responses, and see how your application reacts. This can help you test edge cases and error scenarios.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Throttling:&lt;/strong&gt; Charles Proxy allows you to simulate slow or unreliable network connections, which can be useful for testing how your application handles network issues.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use breakpoints:&lt;/strong&gt; You can use breakpoints to pause the API request at a specific point in the request/response cycle. This allows you to inspect and manipulate the request and response before it is sent or received.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use SSL Proxying:&lt;/strong&gt; Some APIs may use SSL/TLS encryption, which can make it difficult to intercept and record the traffic. Use SSL Proxying to decrypt the SSL/TLS traffic, allowing Charles Proxy to record and manipulate the traffic.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use Repeat:&lt;/strong&gt; Use the Repeat feature to repeat an API request multiple times, enabling you to test the stability and reliability of the API endpoint.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use Sequence:&lt;/strong&gt; Use the Sequence feature to create a sequence of API requests, enabling you to test API workflows and scenarios.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
Charles Proxy is a powerful tool for monitoring and manipulating HTTP traffic, making it an essential tool for developers and testers working with web applications. By mastering API testing with Charles Proxy, you can take your HTTP traffic monitoring skills to the next level and ensure that your web application is functioning correctly in all scenarios.&lt;/p&gt;

&lt;p&gt;Whether you’re manually testing and debugging or automating API testing with Charles Proxy, there’s no doubt that this tool can help you save time, identify issues faster, and deliver high-quality web applications.&lt;/p&gt;

&lt;p&gt;Now go out there and Happy Testing!&lt;/p&gt;

</description>
      <category>charlesproxy</category>
      <category>softwaretesting</category>
      <category>http</category>
      <category>qualityassurance</category>
    </item>
    <item>
      <title>Mastering Mobile Functional Testing: Tips and Tricks for Success</title>
      <dc:creator>Jag (Jagjeet) Singh</dc:creator>
      <pubDate>Sun, 26 Mar 2023 22:16:16 +0000</pubDate>
      <link>https://dev.to/jagjohal/mastering-mobile-functional-testing-tips-and-tricks-for-success-dn4</link>
      <guid>https://dev.to/jagjohal/mastering-mobile-functional-testing-tips-and-tricks-for-success-dn4</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Are you looking to transition from web testing to mobile testing but find it challenging? You’re not alone.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Mobile functional testing can be daunting for some individuals due to uncertainties and unknowns associated with it. However, it is worth noting that mobile testing shares similar principles with web testing at its core. That’s why, in this post, I’ve compiled some easy-to-follow tips and tricks that can help simplify the transition process for you, so you can gain confidence in performing mobile functional testing.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Before we dive into those tips, it’s essential to consider why we should even explore this aspect of the topic.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Mobile applications have become an integral part of our lives, from online shopping to banking, social networking, and entertainment. As mobile usage continues to grow, it has become essential to ensure that mobile applications are functioning correctly, meeting the user’s expectations, and delivering a satisfactory user experience. This is where mobile testing plays a vital role.&lt;/p&gt;

&lt;p&gt;Mobile testing is the process of verifying the functionality, usability, and performance of mobile applications across different devices and platforms. With a plethora of mobile devices and operating systems available in the market, it’s important to ensure that the mobile application works seamlessly across all devices and platforms.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Without any more delay, lets get started:&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Understand the requirements:&lt;/strong&gt; Make sure you have a clear understanding of the requirements of the mobile application before starting the functional testing. This will help you to plan your testing approach and ensure that all the necessary features and functionalities are covered in your testing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Test on different devices and platforms:&lt;/strong&gt; Test the mobile application on different devices and platforms to ensure that it works seamlessly across all of them. This will help to identify any device or platform-specific issues that may arise.&lt;br&gt;
I know you must be thinking, but Jag, I do not have 20 phones on me to look into different scenarios. I know, but have you considered stealing? I am kidding, please don’t do that. There are plenty of cloud services that offer a wide range of devices to test on. For instance, Browserstack is an excellent platform that provides access to multiple phones for testing purposes. You can find out more about Browserstack by visiting their website at &lt;a href="https://www.browserstack.com"&gt;https://www.browserstack.com&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Test with different network conditions:&lt;/strong&gt; Test the mobile application in different network conditions, such as 3G, 4G, 5G and Wi-Fi, to ensure that it works well under different network conditions. This will help to identify any network-related issues that may impact the performance of the mobile application.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use scrubbed data:&lt;/strong&gt; It’s important to test the application with as close to real data as possible instead of just dummy or sample data. This is because scrubbed data provides a better representation of how the application will behave in real-world scenarios where users are inputting data and the app is storing and retrieving it. By testing with real data, testers can identify any issues that may arise in the application’s data input, storage, and retrieval functions, and ensure that the application can handle these scenarios without crashing or producing incorrect results.&lt;/p&gt;

&lt;p&gt;For example, if an application is designed to store user’s personal information, it is important to test with real data such as names, addresses, phone numbers, and emails, to ensure that the application can handle a wide range of data formats and handle edge cases. Similarly, if an application has a feature that requires user to upload files or images, it’s important to test with real files of varying sizes and formats to ensure that the application can handle different file types and sizes without crashing or producing incorrect results. By using real data in mobile functional testing, testers can ensure that the application meets the expectations of the end-users and is able to handle real-world scenarios.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Test for different user scenarios:&lt;/strong&gt; Test the mobile application for different user scenarios, such as logging in, registering, and using different features of the application. This will help to ensure that the mobile application is user-friendly and meets the needs of different users.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use automated testing tools:&lt;/strong&gt; Automated testing tools can accelerate the mobile app testing process and guarantee the comprehensive testing of all essential features and functionalities. For instance, mobile automation testing tools like Appium and Calabash can help detect any potential issues that could arise during the testing process.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Continuously monitor the mobile application:&lt;/strong&gt; Continuously monitor the mobile application for any issues or defects that may arise after it has been released. This will help to ensure that the mobile application is always up-to-date and meets the needs of its users.&lt;/p&gt;

&lt;p&gt;By following these tips, you can master mobile functional testing and ensure the success of your mobile application. So, what are you waiting for? Start testing!&lt;/p&gt;

</description>
      <category>mobiletesting</category>
      <category>softwaretesting</category>
      <category>qualityassurance</category>
      <category>mobiledevelopment</category>
    </item>
  </channel>
</rss>
