Helow
Is it possible to use Jmeter to make a performance test on a mobile app which doesn´t connect to internet, such as calendar or calculator; an app that doesn´t use http protocol?
Thank you.
No.
JMeter acts on protocol level, it doesn't actually clicks links or buttons, it sends requests over variety of supported protocols (not limited to HTTP) and records response times.
If your application doesn't have a backend, i.e. it is completely standalone, you normally don't need to load test it as it won't have more than one user. The only thing you can do is to check resources impact like CPU or RAM usage, battery consumption, most long running code parts, etc. Check out the following materials:
Android Performance Profiling Tools
iOS App Performance: Instruments & beyond
Performance Profiling on Windows Phone 8.1 with Visual Studio
For more detailed explanation of the concept of simulating multiple non-browser applications users check out How to Run Performance Tests of Desktop Applications Using JMeter guide.
You don't need internet connection in order to test like a local website, service or app. And yes, it is possible.
If your app is locally then the app will be available on a localhost port ( db, api, website). If you plan to test from the UI perspective a mobile or desktop app then you are using the wrong tool and you should use other tools like Ranorex or Test Complete.
Related
I want to perform load testing of Single Page Application. So i have created JMeter script for that and it is working fine from my single machine for concurrent users. But i want to create actual concurrent users scenario from different machine or location. For that reason i am trying to use Azure Load Testing service and there want to use JMeter script which i have created on my local machine.
Please let me know if Azure Load testing service support below points : -
Is it possible to test performance of API call which are going to other servers (non Azure).
Is it possible to track performance report like JMeter for each API call individually.
Please let me know if any clue on above problems.
Thanks
As per documentation
Enable developers and testers to generate high-scale load and run simulations that reveal actionable insights into app performance, scalability, and capacity with a fully managed load-testing service. Create tests quickly without prior knowledge of load testing tools, or upload your existing Apache JMeter scripts. Gain specialized recommendations backed by comprehensive metrics and analytics, and support continuous improvement through automated continuous integration and continuous delivery (CI/CD) workflows—all with a testing service built for Azure.
So it should be possible to run your JMeter scripts from Azure. If your system under test is reachable from the Internet you it doesn't matter where it's deployed.
If not and your application is only accessible from your local Intranet - you will have to go for JMeter Distributed Testing
I am a complete beginner working as a tester, I have found multiple resources in google about web APIs and its HTTP methods (GET,PUT,POST,DELETE). However I am confused what is the equivalent of these 'HTTP methods' for a windows desktop application? How do one actually perform a Windows application API test? I have no experience testing windows application APIs and would like to understand it first before making any test plans.
In Google's latest docs, they say to test Go 1.12+ apps locally, one should just go build.
However, this doesn't take into account all the routing etc that would happen in the app engine utilizing the app.yaml config file.
I see that the dev_appserver.py is still included in the sdk. But it doesn't seem to work in Windows 10.
How does one test their Go App Engine App locally with the app.yaml. ie: as an actual emulated app engine app.
Thank you!
On one hand, if your application consists of just the default service I would recommend to follow #cerise-limón comment suggestion. In general, it is recommended for the routing logic of the application to be handled within the code. Although I'm not a Go programmer, for single service applications that use static_files and static_dir there shouldn't be any problems when testing the application locally. You might also deploy the new version without promoting traffic to it in order to test it as explained here.
On the other hand, if your application is distributed across multiple services and the routing is managed through the dispatch.yaml configuration file you might follow two approaches:
Test each service locally one by one. This could be the way to go if each service has a single responsibility/functionality that could be tested in isolation from the other services. In fact, with this kind of architecture the testing procedure would be more or less the same as for single service applications.
Run all services locally at once and build your own routing layer. This option would allow to test applications where services needs to reach one another in order to fulfill the requests made to them.
Another approach that is widely used is to have a separate project for development purposes where you could just deploy the application and observe it's behavior in the App Engine environment. As for applications with highly coupled services it would be the easiest option. But it largely depends on your budget.
I am trying to test web page performance on a mobile device. I know chrome dev tools can be used for mobile simulation but my requirement is that it should be tested on actual device. Is there any such tool available?
I am little confused about your question since in the title you mentioned load testing, but in the detail load testing is not mentioned at all. So, I'll try to answer both:
You can test mobile via emulation or real devices.
If it is necessary to use real devices you can do it in two general ways:
On premise tools such an Experitest.
Using a cloud service like Perfecto Mobile, mobilelabsinc, amazon aws device farm.
You can test your application performance with these tools without any relation to load. That is, how fast they work on your device.
If you want to test your application performance and see its behavior on the device while loading your server then you need to add a load testing tool into your test. For example, HP/LoadRunner, RadView/WebLOAD has integration with Perfecto Mobile. I heard also that JMeter has an integration well – not sure.
In any case, during the load, the recommendation is that the majority of the back end server load will be created via mobile simulation, and add only a few real mobile devices to the party in order to measure the performance from the device itself – because using real devices will be expensive.
Full disclosure: I work for Radview.
SOASTA CloudTest also supports the integration of API/Transport level virtual users with on-device virtual users in the same scenario
I'm looking at having thousands of simultaneous connections from mobile phones to the server whereby anytime a user interacts with his cell phone, the data is sent and logged by the server. Also, anytime the server has new information for that user, the server can push that information without a browser refresh. I am wondering what is more stable and how you would build this?
A good real-time framework or infrastructure will have numerous APIs that should let you connect any device, no matter the technology, to the real-time server e.g. an iOS client library for iPhone and iPad, a JavaScript client library for numerous platforms including normal and mobile web, an Android compatible Java library and so on.
An interesting idea might be to choose which ever framework or real-time service suits your needs best and then using something like PhoneGap. But, as #rt2088 says, it depends if you need the notification app to be running as a service on the phone or as a standalone application.
The choice will also depend on whether you want to install, host, maintain and manage the scaling of your own real-time services or not. If not, there are a number of services out there who you could use so you can concentrate on building your application. If you do want to manage your own infrastructure then the Comet Maturity guide could be a good start. It's a little out of date but is still probably the best reference available.
the ability to push new content the
user based on his GPS location which
is "pinged" to our server. Based on
that, we deliver local content. What
frameworks are you talking about?
There are a number of real-time frameworks available at the moment. Some are hosted services and others require installation on your own hardware. The majority of them will come with a bunch of libraries in different technologies that make it easier to get up and running with them e.g. a JavaScript library that wraps the WebSocket object and also manages fallback for web browsers that don't support WebSockets.
I've just created a Real-Time Technologies Guide in which I've listed all the real-time technologies that I could think of and provided a bunch of tags associated with each.
wouldn't a javascript client library
cover all platforms if it is a web
appilcation?
If the application is a web application then yes, a JavaScript library would be all you need for the client application. The server side libraries that you require would depend on the real-time technology you choose.
Best solution to achieve this is to use the WebSocket communication. It is bidirectional asynchronous communication. Currently every browser supports this new standard and plenty of code snippets available. You just have to google it. There are many server and client side frameworks. choose the one best suits to your requirement.
The details of the WebSocket specification is available at -
Websocket specification
Do you need notification when user uses mobile browser of handset or the mobile handset itself (performing non-browser tasks)? Based on that, the framework to record user activity can be selected.