Impossible create Test plan using RQL Expression (Allure EE) - allure

At Allure EE tool I would like to create Test plan using RQL Expression.
Our project has a lot of test case with different tag (i.e #regress). And I want to fill the test plan with test cases which tagged '#regress'.
I enter tags = '#regress' in Base filter field, but 'invalid query' error appears every time.
enter image description here

You have 2 problems with your query:
There is no tags attribute available. You should use tag instead.
Allure expects string literals be surrounded with double quotes.
So the following query will work as expected: tag = "#regress"
See the docs for more details: https://docs.qameta.io/allure-ee/query-language/test-cases/

Related

Regex for graphQl not returning results when added to react component

I was testing queries out with GraphiQl explorer, which returned the results I wanted using the a regular expression underlined in red below.
You can see it returns results and it generates the code for react in the far right of the screenshot. I was hopeful that it would work straight away with a copy & paste but apparently you have to escape the regex in the template literal string (Why doesn't the code explorer do that if you need to escape it anyway?)
Below are the results if you try to add the code the way its generated.
Through some googling & a GitHub issue I found that the regex needs to be double escaped.
See the update for the fix below. Link to regex PR
Added the change to my regex and it stopped the previous error.
But now its not showing any results..
Regex updated ->
No results ->
I've tried using variables to inject the original regex to the template literal string but no avail as apparently you can't do that with graphQl. Has anyone had this issue or care to share an idea/solution ?

Using the Python API is there anyway to get the Test Run's Status?

I currently have a python program which exports Test Runs, Test Plans, and Test Cases to CSV.
I am using the TestRun Model but I cannot get the information highlighted in the status column seen here. Is there anyway to get this information?
Thanks!
I currently have a python program which exports Test Runs, Test Plans, and Test Cases to CSV.
This is great. Please consider contributing your script under https://github.com/kiwitcms/api-scripts
I am using the TestRun Model but I cannot get the information highlighted in the status column seen here. Is there anyway to get this information?
Note: these screenshots are old!
There is no TestRun.status field, the status is only a visual property which is calculated by the UI based on the presence or absence of TestRun.stop_date field. If this field is null/None then the status is "Running", otherwise it is "Stopped".
In the current TR search page for example we query the TestRun.filter API with a
stop_date__isnull=True parameter.

How to specify path to a report from another report?

I have SSRS on SQL Server 2012 and using report builder to build a drillthrough report. I have a table 6 rows and multiple columns. Each text box has some number in it and I should be able to click on these numbers and go to a different report. Both these reports would be under same folder on report server.
Problem:
I am able to do it until this point by following instructions at this page.
My problem is I can't use a static link as each text box should direct to it's own unique report. And when I "Specify a report:" using "Browse" button there or by providing static link, same link will be used for all the text boxes in the same column. What I need is to be able to specify path to the report which is of format /Folder_Name/<valueOfColumn1><valueOfColumn2><nameOfColumn3>;
What I tried:
So I tried to use "Expression" by clicking on "fx" button and provided link as =Globals!ReportFolderFields!column1.ValueFields!column2.ValueFields!column3.Name
Outcome:
When I try using above methods by using expression it doesn't throw any error but the text box is not clickable (doesn't turn pointer into an index finger). When I used static link by using "Browse" button, the same text box was clickable and was taking me to another report.
What am I missing here? Any pointer would be helpful.
The syntax of the field list in your formula needs a few changes. It looks like what you're really trying to do is concatenate several fields together, with a slash at several spots, in order to get the proper URL format.
Let's assume that the following elements resolve to the strings you need. (It can sometimes be helpful to verify these resolve to what you're expecting by inserting textboxes for each, individually, in a section of the report for troubleshooting; you can always remove them later.)
Globals!ReportFolder
Fields!column1.Value
Fields!column2.Value
Fields!column3.Name
If you would like to concatenate these together to use as a URL, together with a few slashes added in the correct places, you'll need to follow the SSRS conventions on operators in expressions, which results in something like this:
"/" & Globals!ReportFolder & "/" & Fields!column1.Value & Fields!column2.Value & Fields!column3.Name
as always, since this is an expression, it will need to start with an equals sign.
The expression builder doesn't insert operators for you between fields - it's not that smart...

Are there any tools for recording web browser events for seleniumn2?

I am looking for something very simple. It can use the Selenium IDE recording tool, but it does not allow me to pick what kind of locators I get.
I want to use:
driver.findElement(By.className(str))
to locate things. All I need is something which watches which UI elements on a web page get clicked and writes out the class attributes of those tags.
If I use the Selenium IDE recording (and export to the right type of thing), I get:
#Test
public void testNav() throws Exception {
driver.get(baseUrl + "/");
driver.findElement(By.name("3.1.1.5.1.1")).clear();
driver.findElement(By.name("3.1.1.5.1.1")).sendKeys("dan");
driver.findElement(By.name("3.1.1.5.1.5")).click();
driver.findElement(By.linkText("Products")).click();
driver.findElement(By.linkText("Categories")).click();
driver.findElement(By.linkText("Create a Category")).click();
driver.findElement(By.linkText("Cancel")).click();
driver.findElement(By.linkText("Products")).click();
driver.findElement(By.cssSelector("a.DisplayAdminProductsLink")).click();
driver.findElement(By.linkText("Product1")).click();
There are problems with this. First, it is not give me any By.className() calls. Why? Those first 3 calls will not help me. The framework I am using puts arbitrary things into the name. How can I get it to see the class attribute?
There actually are unique words in the class attribute of all of the above tags. I design my apps so that this is so. Yet it will not use them.
Earlier I asked:
Why is it doing a "driver.findElement().click()"? This is fragile and does not
end up working.
What I need is:
elt = driver.waitFor(By.className("c")); elt.click();
This will work reproducibly.....
I am considering to be removed from the question, as the findElement() code does work. You need to set a general time-out on the driver. It is not very obvious that this can be done, but it can.
So, continuing on....
I can go to the "Options" and change the order of the "Locator Builders" in eclipse. I can put "css" at the top. Then I get:
driver.findElement(By.cssSelector("input[name=\"3.1.1.5.1.1\"]")).clear();
driver.findElement(By.cssSelector("input[name=\"3.1.1.5.1.1\"]")).sendKeys("dan");
driver.findElement(By.cssSelector("input[name=\"3.1.1.5.1.5\"]")).click();
The tags are like:
<input class="form-control LoginUsernameField" ... />
But it does not see the class attribute.... Or I can do this manually.
Selenium looks for a unique identifier to identify elements in a webpage. classNames are a very less desired option for this purpose as they are generally not unique. Ids and names on the other hand are generally unique. This might be the reason why Selenium IDE is not selecting classNames and going for other identifiers.
Selenium IDE records user actions. You would have clicked on the element for Selenium IDE to identify it and that is why you are getting driver.findElement().click().
If you want to wait for element to wait you can try implicit wait.
When you want to use driver.findElement(By.className(str)), are you sure that there is one and only one element in the webpage that is associated with a className? If that is the case you can modify the webdriver code manually to use className.

Salesforce: utility to escape char from vf page?

When passing value from salesforce to javascript I can simple do
var test = '{!myname}';
But how can i escape this so that I can take care of name with symbol like single quote?
I noticed String.escapeSingleQuote exists but can only be used in class not in vfpage
Check the range of "encoding functions" (bottom of the page).
var test = '{!JSENCODE(myname)}';
will be probably best. The help reference of these functions says that they work only in buttons/links but I've used them several times on VF pages. In fact they're recommended way of strengthening your code against XSS etc attacks.
You could also use <apex:outputField> everywhere and fetch the content of fields by id for example. By default most tags that output text data have escape="true" set.

Resources