Why must I run automation test cases on windows? - ui-automation

I have been told that I must run my automation test cases on win10 platform and Chrome.
Our project is based on Chorme Browser.
I am confused ,because we write cases on MacOs,and we could have ran the cases on linux server.
We are using Jenkins+Cypress+Chrome to do automation test.On MacOS,it works well;but when I move the codes to win10,I must modify codes to adapt win10,and I have to solve bugs that never happened on Mac OS.
Are there any different between Linux+Chrome and Windows+Chrome?
Is it necessary for us to run automation test cases on Windows?

Is it necessary for us to run automation test cases on Windows?
No, Cypress can run on several operating systems (including Windows, Linux and MacOS). So there is no need to specifically run the test on a Windows 10 system.
For the browsers you are limited to Chrome and Electron.
Are there any different between Linux+Chrome and Windows+Chrome?
Yes there are differences, for example shortcut key combo's, but there are multiple differences.
I have been told that I must run my automation test cases on win10
platform and Chrome.
Who did tell you that? Without a source or more information about the why we can't help you with that question.

Related

Can I develop with VS Code on the new Samsung Chromebook Pro?

Thinking more about leaving my MBP at home and instead taking the new Samsung Chromebook PRO to Starbucks for the day.
Is this fantasy or will VS Code run properly on this new machine? I see options for the Arm chip based PLUS model but nothing for the PRO.
Is a port available and if so how has development been, good?
UPDATE
I guess this is a hard question to answer? Essentially, I just want to leave my heavy MBP that always needs a power outlet at home. Just want to head out with a light weight machine and work on it anywhere.
The PRO does run Linux but I have not verified clearly that VS Code can run in this environment. Being in Canada I have no access to the PRO yet, can only order it from USA at this point, which I might do once I know the verdict to my question.
My team and I have been experimenting heavily with the Samsung Chromebook Pro and have been actively switching our development environments completely over to the Chromebook ecosystem (away from Mac). Personally I run a combination of Atom and NeoVim with a complete development environment for Node.js, Postgres, and Redis on my Chromebook Pro.
For any desktop IDE you'll need to run Crouton which means you'll have to put your Chromebook into developer mode which is less secure. If you don't want to do that your only options are either use something like Caret (which will only do basic text editing) or to use some sort of cloud-based IDE; ones I know of: Cloud9, Codenvy, Shiftedit, and Eclipse Che (an open source one that just recently caught my eye).
The good news is Crouton can run effectively anything that Linux can (especially since the Pro has an x86 processor), and from what I can tell VSCode supports Ubuntu, the default Linux distribution for Crouton. You can even set up the Crouton Extension to put your GUI programs into Chrome tabs or windows within ChromeOS using Xiwi.
Anything with a GUI running in Crouton is going to hurt performance and battery life on Chromebook since ChromeOS is finely tuned for running specifically the Chrome Browser. I don't expect you run out and learn a terminal-based editor today if you haven't already, but I highly recommend at least getting comfortable using the terminal for quick editing, using git, and running simple shell commands. That will save you that sweet Chromebook battery life and a bit of frustration dealing with a somewhat-quirky Xiwi and Crouton Extension.
If you're willing to work out a few kinks the Chromebook Pro development experience is pretty great. It's truly a quality piece of hardware and ChromeOS is fantastic with the addition of the ability to run Android apps.
UPDATE (9/19/17):
There is another option now for at least getting server environments running on ChromeOS without using developer mode. It's called Termux, an Android app, which can bind to a local port and can be interfaced with via SSH. You can read more on the blog post we came across here: https://blog.lessonslearned.org/building-a-more-secure-development-chromebook/ You will, however, have to use a terminal-based text editor like VIM or a native ChromeOS one like Caret, so it will not run GUI editors like VSCode or Atom.
Check out https://coder.com
It's basically VS Code running on a remote server, accessible through a browser.
I've just started playing around with it and looks like a perfect fit for a Chromebook. And it's open source too :)
You can now (with the Linux-beta for chromeOS) quite easily run vscode locally on a chromebook, see this step-by-step guide: https://blogs.sap.com/2018/10/16/set-up-vs-code-on-chrome-os-for-local-application-programming-model-development/

OSGi headless deployment on Linux

I've developed a OSGi application on my windows machine that is just lovely. How ever I need it to run on my Linux server and this is where I run into problems.
My application has no GUI. It simple works with a console and is command line driven.
My first attempt at deployment I built a product based on my existing run target. It exported fine to a Windows .exe so I added the required delta packs for Linux. The problem with this is it has only two options Linux (GTK) and Linux (MOTIF). My linux server runs on CentOS with no GUI as it is a hosted machine so when I try and deploy it I get a segmentation fault.
I have been searching around as to what to do but I'm not coming up with any answers.
Any help would be much appreciated. I have been banging my head on this one for over a week
Cheers
The google keyword you need is 'xvfb' - it acts like an X server, but ignores everything sent to it, so you don't need any graphics hardware. Try firing that up (make sure you set DISPLAY appropriately).
A cleaner solution would be to figure out why the library is demanding an X server if it works without - perhaps you could update the question with more details.

Determine differences between two computers running Windows XP?

I have a program which I try to run on two computers. On one computer, it works fine. However, on the other computer, it hangs while attempting to create a USB channel. I do not have the ability to look inside the program. What is the best way to determine the differences between the two machines?
dxdiag will give you information about the specific minor versions of XP you're using. From there, I'd build two virtual machines, upgraded to the specific versions of windows.
From there, begin installing software one-by-one on the failing machine until you can reproduce the error. If this doesn't work, you might have a hardware issue, and then you're really SOL.

Are there any USB stick runnable, no-install, cross platform software frameworks (with GUI)?

Does anyone know of a good software development framework or similar that has the following properties?
Cross platform: it should be runnable on XP, Vista, OSX and common versions of Linux (such as Ubuntu and Kubuntu).
No installation: Be able to run the software from a USB stick without having to copy anything to the host machine.
Have good GUI support (this is why this question doesn't give a suitable answer, as far as I can tell).
Permissive licensing such as LGPL or BSD or such.
Among the softer requirements are having a set of abstractions for the most common backend functionality, such as sockets, file IO, and so on (There is usually some platform specific adaptations necessary), and supporting a good language such as Python or C++, though it is usually fun to learn a new one (i.e. not perl).
I think possible candidates are Qt 4.5 or above (but IFAIK Qt software will not run on Vista without any installation(?)), some wxWidgets or maybe wxPython solution, perhaps gtkmm. The examples I have found have failed on one or another of the requirements. This does not mean that no such examples exist, it just means that I have not found any. So I was wondering if anyone out there know of any existing solutions to this?
Some clarifications;
By "framework" I mean something like Qt or gtkmm or python with a widget package.
This is about being able to run the finished product on multiple platforms, from a stick, without installation, it is not about having a portable development environment.
It is not a boot stick.
It is ok to have to build the software specifically for the different targets, if necessary.
The use case I am seeing is that you have some software that you rely on (such as project planning, administration of information, analysis tools or similar) that:
does not rely on having an internet connection being available.
is run on different host machines where it is not really ok to install anything.
is moved by a user via a physical medium (such as a USB stick).
is run on different operating systems, such as Windows, Vista, Ubuntu, OSX.
works on the same data on these different hosts (the data can be stored on the host or on the stick).
is not really restricted in how big the bundled framework is (unless it is several gigabytes, which is not really realistic).
It is also ok to have parallel installations on the stick as long as the software behaves the same and can work on the same data when run on the different targets.
A different view on the use case would be that I have five newly installed machines with Vista, XP, OSX, Ubuntu and Kubuntu respectively in front of me. I would like to, without having to install anything new on the machines, be able to run the same software from a single USB stick (meeting the above GUI requirements and so on) on each of these five machines (though, if necessary from different bundles on the stick).
Is this possible?
Edit:
I have experimented a little with a Qt app that uses some widgets and a sqlite database. It was easy to get it to work on an ubuntu dist and on osx. For windows xp and vista I had to copy QtCored4.dll, QtGuid4.dll, QtSqld4.dll and mingwm10.dll to distribution directory (this was debug code) and I copied the qsqlited4.dll to a folder named "sqldrivers" in the distribution directory.
You mention wxWidgets but dismiss it as failing at least one of the requirements.
I don't know what your requirements are and in what way wxWidgets wouldn't work for you, but IMO it does fulfill them:
Cross platform: it should be runnable on XP, Vista, OSX and common versions of Linux.
It does run on those platforms, but "common versions of Linux" isn't good enough, as you can never be sure that the necessary GUI libraries for wxGTK (which should not be linked to statically) will be installed. This is however a problem for other solutions as well, unless you plan to put everything onto the stick.
No installation: Be able to run the software from a USB stick without having to copy anything to the host machine.
See the previous point, you would need to specify which libraries are needed on Linux. Also you could specify at build time not to use some of the system-provided libraries (for example for graphics, compression, regexes) but to use the wxWidgets-internal libraries instead.
Have good GUI support
Check.
Permissive licensing such as LGPL or BSD or such.
Check. You can statically link wxWidgets into your application too.
supporting a good language such as Python or C++
Supports both, and there are bindings to other languages as well.
having a set of abstractions for the most common backend functionality, such as sockets, file IO, and so on
It does have some abstractions like that, but you can link to other cross-platform libraries as well.
We use wxWidgets for FlameRobin, a graphical administration program for the Firebird SQL server. It has active ports to Windows, Linux and Mac OS X, and has been compiled for at least some BSD variant and Solaris as well. It definitely runs from a stick on Windows, I haven't tried with Linux or Mac OS X, but I don't see why it shouldn't there too.
Java.
It has GUI support.
It provides your network/file/etc. abstractions.
It is cross-platform. Most platforms you can think of have a JRE available.
No need to install a JRE. Most users probably already have one, and if not, you can run the appropriate JRE right off the stick.
You can provide several startup scripts for various platforms to run the app under the appropriate JRE.
Something else to consider is HTML+Javascript. :D
You can look at Mono it cross platform, has GUI (GTK+, or Winforms 2.0) and I can execute code without installing.
This might not be crossplatform, but is maybe even better, it dont even use the platform : linux on a stick :-)
The subtitle is
Take your Java workspaces wherever you go on a USB key
Here with java and eclipse, but nothing stops you there of course.
http://knol.google.com/k/inderjeet-singh/installing-a-ubuntu-hardy-heron-java/1j9pj7d01g86i/2#
Well, it depends on what you mean by 'package'. Kylix came close to being such a thing. It was QT based, and it allowed you to write once and compile for Windows + Linux. However, it was not an open source solution.
I asked a similar question in this link
http://www.24hsoftware.com/DevelopersForum/CrossPlatform-C-Library.html
and the best asnswer seems to be QT.
I have started using QT, but it is not as easy as I expected mainly due to deployment problems due to the DLL hell, Winsxs hell and manifest hell.
Tclkit is a single-file, self-contained Tcl/Tk system. The mac version I have is about 3.8 megs. You can get a version for just about any modern OS. I carry around a thumb drive that has mac, windows and linux binaries so I can run my scripts on any platform. No install is required, just copy one file wherever you want.
The most recent versions of tcklit use native, themed widgets (though, on *nix there really isn't a single "native" set of widgets...)

Creating installers for complex cross-platform programs

I'm sketching an application deployment process for a bunch of relatively complex desktop applications. We have both native and Java apps, so the deployment must be able to check for existence of the JRE and install it if needed. Some of the apps depend on special hardware, so the deployment must also be able to launch the necessary driver installers. Some of the apps are multiplatform, and preferably the same mechanism should be able to create Windows, Linux and Mac OS X installers. That is:
The installer must be able to install, in addition to the application itself:
Java Runtime Environment.
Drivers (hardware) - that is, launch other installers.
The installer builder must be operable from the command line so that it can be integrated with an automatic build mechanism that generates installer packages for each platform as nightly builds.
In addition, I need to create "update from the web" mechanisms for the applications. It could be included in the installer, or it could also be a separate custom mechanism built into the application.
Now, this is getting a bit complex, and I suspect that there might be no single installer that could do this all. Therefore I'm thinking between two fundamentally different approaches:
Platform-specific mechanisms: NSIS would create .exe or .msi for Windows, XXX would create .deb for Ubuntu, and YYY would create .dmg for OS X.
Cross-platform installer that would handle all the requirements above: ZZZ?
Any recommendations? Some options that I've looked include:
NSIS - Excellent, but Windows only.
IzPack - Good, but requires JVM to run.
Is there an universal tool for this, or should I just pick an appropriate tool separately for each platform? In the latter case, what would be "NSIS equivalents" for Ubuntu and Mac OS X?
I have some recommendations as follows.
Use WIX (Windows Installer XML) for creating MSI installers for Windows
Use Package Maker (part of XCode tools) on MAC OS X, preferably the command line version
Write wrapper scripts (in Python or so) to drive the over-all installer creation process.
to aggregate all the components you need to install (may be from ur version control system)
generate necessary files for Wix and Package Maker as much as possible
to run the packaging tool and generate the package
Make sure that the overall installer creation process is a simple one command operation overall (with options to create different versions of your package based on criteria like release branch etc.)
Overall, developing this workflow requires some initial effort and quite a lot of thinking. But the end result is quite worth the effort.
I haven't done this on the Linux side, but I guess would use RPM/DEB on that front in this workflow.
BitRock InstallBuilder meets all the requirements, including being multiplatform and providing an autoupdate mechanism
You should take a look at InstallJammer. It will definitely handle the cross-platform elements that you want and can even add entries to the DEB and RPM databases on the target system during installation. OS X support is still experimental, but it mostly works.