Report guidelines
Foreword¶
By reading this tutorial, you will learn about the following:
- Page content of the new report
- Feature introduction of the new report
- How to generate a report
Page content of the new report¶
The report is mainly divided into two parts:
①In the top half of the report, you can see some information related to the report, such as the name of the report, the author, the report description (which can be customized, refer to the below content), the quick view, and so on.Click on any of the quick views and the corresponding test information will be displayed below.
②The second half of the report shows each test action and its execution in detail. Click the test action on the left side, and the details of the corresponding action execution result will be displayed on the right side. And we can also filter different execution results on the right side.
Feature introduction of the new report¶
Customize partial report information¶
If the following content is written in the script, it will be displayed in the report:
- __author__
Corresponding to the author of the script
- __title__
Corresponding to the title of the script
- __desc__
You can write a long script description that will be displayed on the page. If it exceeds a certain number of lines, it will be automatically folded.
If you want to get the corresponding information in the script separately, you can use the command line: airtest info + script path
.
And you can get the script information parsed by airtest, similar to the following return value:
>airtest info untitled.air
{"name": "untitled.air", "path": "untitled.air", "author": "user", "title": "title of the script", "desc": "Description of the case"}
The assertion name in the step navigation shows the msg entered by the user¶
Add view context function in the step navigation¶
After filtering some test actions, if you want to view the context of a test action, you can click the "eye" icon to the right of the test action to locate the context of the test action in all test actions.
Add image thumbnail and thumbnail positioning function¶
Click on a different thumbnail to display the execution of the corresponding step.
Fix the case where the report content is empty after opening the report page in some browsers¶
At present, we have fixed the case where the report content is empty after opening the report page in some browsers. And we will continue to fix it later, so stay tuned.
How to generate a report¶
Click the Generate Report button in the IDE to generate a report.¶
After running the script, you can immediately see whether the current script succeeds or fails in the log window, but you cannot see more detailed and intuitive execution results.In AirtestIDE, you can click the "View Report" button on the upper icon menu, the shortcut key is Ctrl+L
, and the report page will be opened automatically in the default browser later:
In addition, we can right-click on the script title on AirtestIDE and select "Open Report" to open the folder where the log is located.
Use the command line to generate a report¶
The process that our script runs is a separate step from the report generation process, so we can run the script first with the airtest run
directive:
# Run the script untitled.air with airtest
# Following the airtest run is the path to the script file.
>airtest run untitled.air
It is worth noting that if the airtest run
directive does not specify --log log/
, the generated log content will be placed in the execution directory of the current command line; if the --log
parameter is specified, the log content and the screenshot will be placed in the specified directory.
Then we can run the airtest report
command to generate a report in HTML format:
# The simplest command line, the log file is in the same folder as the script file
# Run the following command to generate a log.html in the current directory
>airtest report untitled.air
log.html
The parameter that must be passed in the airtest report
command is our running script. There are many other optional parameters supported. For details, please refer to Airtest_generate-html-report .Here is the most common command line:
>airtest report untitled.air --log_root log/ --outfile log/log.html --lang zh
In the above code:
--log_root log/
indicates that an html report is generated using the log contents in the log/ directory;
--outfile log/log.html
means to put the html report into the log directory, named log.html;
--lang zh
indicates that the specified language is Chinese.
Sometimes we need to copy the report to another directory, or package it for others to view, but the directly generated report can not be viewed since it was copied to other directories.The reason is that all the pictures and static resource files in the report directly generated use absolute paths, so you can't directly copy them to other computers to view them, but you can copy them to other directories in your own computer. So we provide an export mode, which is to add a parameter --export
to the directory path after the report command, and you can export the report to a folder to view it.
In addition, we can directly copy the instructions displayed in the log window to run the script after running the sanme script in AirtestIDE.So you can do the same when generating a report:First click on the Generate Report button in AirtestIDE. After the command line for generating the report appears in the log window, copy it to your command line window and you are free to run it.(Note that if the instruction copied into the command line window contains paths, all the paths in the instruction should be separately enclosed in double quotation marks in English mode, otherwise the command line will execute the error.)
Read static resource files and image files in reports¶
In the report generated by the command airtest report
, absolute paths are used to access the image file inside, and the static css and js resource files accessed in the HTML report are also absolute paths on the hard disk (The default is in the report folder under the installation directory of Airtest ).Therefore, if you want to send a report to others to watch, you must add --export exported directory
to the end of the command line to export the report to a specified directory, and then send the entire directory to others to watch.
Comparison of read paths of static files:
- By default, the report page uses absolute paths to access images and resource files.
- The pages of reports exported using the parameter -export
use relative paths to access images and resource files.
Therefore, if you want to deploy the report to the server for others to see, you also need to use the parameter --export
to export the report so that the image path is a relative path.
At the same time, you can use the parameter --static_root static resource directory
to specify the path to the static resource file (ie, css, js, etc. in the report).We can deploy the resource file to the static resource file server, and access it with a path such as https://host:port/static/css/
. When generating the report, you can pass the deployed server address as the parameter of --static_root
, so that the report will access the URL to read the static resource file by default, avoiding disk space usage caused by duplicate copying of these resource files when exporting reports.
airtest report untitled.air --log_root log/ --outfile log/log.html --lang zh --static_root https://host:port/static/css/ --export ./report
The report using poco statement¶
Since the default report is an exclusive report for airtest, the support for the poco statement is not perfect, so we use plugins to support the poco statement:Add the directive --plugin poco.utils.airtest.report
at the end of your report command line.
The report using the selenium plugin¶
If our script uses selenium plugin, be sure to include --plugin airtest_selenium.report
at the end of the command line that generated the report, which will allow the report to support the selenium element. Please refer to the Airtest-Selenium documentation for details.
Generate reports using Python code¶
Usually, we generate reports through the command line, but since Airtest is a Python third-party library, you can simply call the interface to generate reports.First we need to create a new script - select the pure .py file and check the option to generate the log:
Then click OK, a .py template will be automatically generated. After writing the script, we can use the following code to call the interface to generate the report:
# generate html report
from airtest.report.report import simple_report
simple_report(__file__)
In the above code, simple_report
uses the default parameters, in which case you need to initialize logdir
of auto_setup
, such as
auto_setup(__file__, logdir=True, devices=["Android:///",])
, if you do not initialize it, you will not be able to generate log.txt, the error is as follows:
After the initialization, the script is executed, and the log.html and log folder (which stores log.txt ) are generated. But if we manually specify the logdir
directory, log.txt will be generated in the specified directory.
In addition, more parameters of simple_report
can also refer to documentation. You can simply pass logpath=
to manually specify the script's log directory to simply generate log.html
.
If you have more complex requirements, such as specifying the export directory export_dir
or using --plugin poco.utils.airtest.report
when using the poco statement in the script, please refer to the document LogToHtml.