Interface test method and device, electronic equipment and storage medium
1. An interface testing method, comprising:
acquiring a screenshot of an interface to be tested;
obtaining the difference of the pixel values of the screenshot and the expected image of the interface to be tested;
and determining an interface test result of the interface to be tested according to the difference of the pixel values of the screenshot and the expected image.
2. The method of claim 1, wherein determining an interface test result of the interface to be tested according to the difference between the pixel values of the screenshot and the expected image comprises:
and determining that the interface to be tested is displayed normally under the condition that the pixel value difference meets a preset difference requirement, and determining that the interface to be tested is displayed abnormally under the condition that the pixel value difference does not meet the preset difference requirement.
3. The method of claim 1, further comprising:
setting the transparency of one picture in the screenshot and the expected picture as a preset value under the condition that the pixel value difference does not meet the preset difference requirement;
covering the picture with the transparency of the preset value above the other picture in the screenshot and the expected picture to obtain an overlapped picture;
displaying the overlapping pictures.
4. The method of claim 1, further comprising:
and under the condition that the pixel value difference does not meet the preset difference requirement, generating a difference image according to the pixel difference of the pixels at the same position in the screenshot and the expected image.
5. The method of claim 1, wherein obtaining the difference in pixel values between the screenshot and the expected view of the interface to be tested comprises:
making difference between the pixel value of each pixel in the screenshot and the pixel value of the pixel at the same position in the expected image of the interface to be tested respectively to obtain the pixel difference between the screenshot and the pixel at the same position in the expected image;
and determining the difference of the pixel values of the screenshot and the expected image according to the pixel difference.
6. The method of claim 1, further comprising:
detecting a difference area between the screenshot and the expected image under the condition that the pixel value difference does not meet a preset difference requirement;
when two difference areas with the same shape exist, determining target display content needing to be adjusted according to the difference areas;
and adjusting the position of the target display content in the interface to be tested to the position of the target display content in the expected graph.
7. An interface testing apparatus, comprising:
the screenshot obtaining unit is configured to execute screenshot obtaining of the interface to be tested;
a difference obtaining unit configured to perform obtaining of a difference in pixel values between the screenshot and a desired image of the interface to be tested;
and the result determining unit is configured to determine an interface test result of the interface to be tested according to the difference between the screenshot and the pixel value of the expected image.
8. An electronic device, comprising:
a processor;
a memory for storing the processor-executable instructions;
wherein the processor is configured to execute the instructions to implement the interface testing method of any one of claims 1 to 6.
9. A computer-readable storage medium, wherein instructions in the computer-readable storage medium, when executed by a processor of an electronic device, enable the electronic device to perform the interface testing method of any of claims 1-6.
10. A computer program product comprising computer programs/instructions, characterized in that the computer programs/instructions, when executed by a processor, implement the interface testing method of any one of claims 1 to 6.
Background
User interface testing (UI testing), which can test whether each window is consistent with the reference version or meets the acceptable standard.
In the related art, a technician is required to write code for testing the UI separately for each page structure (e.g., a certain window or a part of a certain window of a page). Although the automatic test of the UI can be realized after the code is written, the process of writing the code is time-consuming and labor-consuming, and the code needs to be rewritten for different page structures respectively, so that the efficiency of the UI test is low.
Disclosure of Invention
The present disclosure provides an interface testing method, an interface testing device, an electronic device, and a storage medium, so as to at least solve the problem of low efficiency of UI testing in the related art. The technical scheme of the disclosure is as follows:
according to a first aspect of the embodiments of the present disclosure, there is provided an interface testing method, including:
acquiring a screenshot of an interface to be tested;
obtaining the difference of the pixel values of the screenshot and the expected image of the interface to be tested;
and determining an interface test result of the interface to be tested according to the difference of the pixel values of the screenshot and the expected image.
In a possible implementation manner of the first aspect, the determining an interface test result of the interface to be tested according to a difference between the screenshot and the pixel value of the expected image includes:
and determining that the interface to be tested is displayed normally under the condition that the pixel value difference meets a preset difference requirement, and determining that the interface to be tested is displayed abnormally under the condition that the pixel value difference does not meet the preset difference requirement.
In a possible implementation manner of the first aspect, the interface testing method further includes:
setting the transparency of one picture in the screenshot and the expected picture as a preset value under the condition that the pixel value difference does not meet the preset difference requirement;
covering the picture with the transparency of the preset value above the other picture in the screenshot and the expected picture to obtain an overlapped picture;
displaying the overlapping pictures.
In a possible implementation manner of the first aspect, the interface testing method further includes:
and under the condition that the pixel value difference does not meet the preset difference requirement, generating a difference image according to the pixel difference of the pixels at the same position in the screenshot and the expected image.
In a possible implementation manner of the first aspect, the obtaining a difference between pixel values of the screenshot and a desired image of the interface to be tested includes:
making difference between the pixel value of each pixel in the screenshot and the pixel value of the pixel at the same position in the expected image of the interface to be tested respectively to obtain the pixel difference between the screenshot and the pixel at the same position in the expected image;
and determining the difference of the pixel values of the screenshot and the expected image according to the pixel difference.
In a possible implementation manner of the first aspect, the interface testing method further includes:
detecting a difference area between the screenshot and the expected image under the condition that the pixel value difference does not meet a preset difference requirement;
when two difference areas with the same shape exist, determining target display content needing to be adjusted according to the difference areas;
and adjusting the position of the target display content in the interface to be tested to the position of the target display content in the expected graph.
In a possible implementation manner of the first aspect, the expected drawings of each interface to be tested are sequentially arranged according to a preset testing sequence, and the method further includes:
sequentially opening each interface to be tested according to the preset test sequence;
and selecting an expected graph with the sequence consistent with the test sequence of the currently opened interface to be tested from the expected graphs of the interfaces to be tested, and determining the selected expected graph as the expected graph of the currently opened interface to be tested.
According to a second aspect of the embodiments of the present disclosure, there is provided an interface testing apparatus, including:
the screenshot obtaining unit is configured to execute screenshot obtaining of the interface to be tested;
a difference obtaining unit configured to perform obtaining of a difference in pixel values between the screenshot and a desired image of the interface to be tested;
and the result determining unit is configured to determine an interface test result of the interface to be tested according to the difference between the screenshot and the pixel value of the expected image.
In a possible implementation manner of the second aspect, the result determining unit is specifically configured to perform: and determining that the interface to be tested is displayed normally under the condition that the pixel value difference meets a preset difference requirement, and determining that the interface to be tested is displayed abnormally under the condition that the pixel value difference does not meet the preset difference requirement.
In a possible implementation manner of the second aspect, the interface testing apparatus further includes:
a picture setting unit configured to perform setting of a transparency of one of the screenshot and the desired picture to a preset value in a case where the pixel value difference does not satisfy a preset difference requirement;
the picture covering unit is configured to cover a picture with the preset transparency above the other picture of the screenshot and the expected picture to obtain an overlapped picture;
a picture display unit configured to perform displaying the overlapping pictures.
In a possible implementation manner of the second aspect, the interface testing apparatus further includes:
and the image generation unit is configured to generate a difference image according to the pixel difference of the pixels at the same position in the screenshot and the expected image under the condition that the pixel value difference does not meet a preset difference requirement.
In a possible implementation manner of the second aspect, the difference obtaining unit includes:
the pixel difference obtaining subunit is configured to perform difference between the pixel value of each pixel in the screenshot and the pixel value of a pixel at the same position in the expected image of the interface to be tested, so as to obtain the pixel difference between the screenshot and the pixel at the same position in the expected image;
a difference obtaining subunit configured to perform determining a pixel value difference of the screenshot and the desired image according to the pixel difference.
In a possible implementation manner of the second aspect, the interface testing apparatus further includes:
the area monitoring unit is configured to detect a difference area between the screenshot and the expected image under the condition that the pixel value difference does not meet a preset difference requirement;
a content determination unit configured to perform, when there are two difference regions having the same shape, determining target display content that needs to be adjusted according to the difference regions;
a content adjusting unit configured to perform adjusting a position of the target display content in the interface to be tested to a position of the target display content in the expectation graph.
In a possible implementation manner of the second aspect, the expected graphs of each interface to be tested are sequentially arranged according to a preset testing sequence, and the interface testing apparatus further includes:
the interface opening unit is configured to execute the sequential opening of the interfaces to be tested according to the preset testing sequence;
and the picture opening unit is configured to select a desired picture with the sequence consistent with the test sequence of the currently opened interface to be tested from the desired pictures of the interfaces to be tested, and determine the selected desired picture as the desired picture of the currently opened interface to be tested.
According to a third aspect of the embodiments of the present disclosure, there is provided an electronic apparatus including:
a processor;
a memory for storing the processor-executable instructions;
wherein the processor is configured to execute the instructions to implement any one of the interface testing methods provided by the first aspect of the present disclosure.
According to a fourth aspect of embodiments of the present disclosure, there is provided a computer-readable storage medium, wherein instructions, when executed by a processor of an electronic device, enable the electronic device to perform any one of the interface testing methods provided by the first aspect of the present disclosure.
According to a fifth aspect of embodiments of the present disclosure, there is provided a computer program product comprising computer programs/instructions which, when executed by a processor, implement any one of the interface testing methods provided by the first aspect of the present disclosure.
The technical scheme provided by the embodiment of the disclosure at least brings the following beneficial effects:
the method and the device can obtain the screenshot of the interface to be tested, obtain the pixel value difference between the screenshot and the expected image of the interface to be tested, and determine the interface test result of the interface to be tested according to the pixel value difference between the screenshot and the expected image. The method and the device can determine whether the interface is displayed normally or not through the difference of the pixel values of the screenshot and the expected image, and code writing is not needed. Meanwhile, the interface testing method provided by the embodiment of the disclosure can be applied to all page structures, so that codes do not need to be rewritten for different page structures, and the efficiency of UI testing can be higher. It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the disclosure.
Drawings
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments consistent with the present disclosure and, together with the description, serve to explain the principles of the disclosure and are not to be construed as limiting the disclosure.
FIG. 1 is a flow chart illustrating a method of interface testing according to an exemplary embodiment;
FIG. 2 is a flow chart illustrating a method of interface testing according to another exemplary embodiment;
FIG. 3 is a schematic illustration of a screenshot shown in accordance with another exemplary embodiment;
FIG. 4 is a schematic illustration of a desired graph shown in accordance with another exemplary embodiment;
FIG. 5 is a schematic diagram of overlapping pictures shown in accordance with another exemplary embodiment;
FIG. 6 is a flow chart illustrating a method of interface testing in accordance with another exemplary embodiment;
FIG. 7 is a schematic diagram of a difference image shown in accordance with another exemplary embodiment;
FIG. 8 is a flow chart illustrating a method of interface testing in accordance with another exemplary embodiment;
FIG. 9 is a schematic diagram illustrating an image containing a disparity region according to another exemplary embodiment;
FIG. 10 is a flow chart illustrating a method of interface testing in accordance with another exemplary embodiment;
FIG. 11 is a block diagram illustrating an interface testing device in accordance with another exemplary embodiment;
FIG. 12 is a block diagram illustrating an electronic device in accordance with another example embodiment.
Detailed Description
In order to make the technical solutions of the present disclosure better understood by those of ordinary skill in the art, the technical solutions in the embodiments of the present disclosure will be clearly and completely described below with reference to the accompanying drawings.
It should be noted that the terms "first," "second," and the like in the description and claims of the present disclosure and in the above-described drawings are used for distinguishing between similar elements and not necessarily for describing a particular sequential or chronological order. It is to be understood that the data so used is interchangeable under appropriate circumstances such that the embodiments of the disclosure described herein are capable of operation in sequences other than those illustrated or otherwise described herein. The implementations described in the exemplary embodiments below are not intended to represent all implementations consistent with the present disclosure. Rather, they are merely examples of apparatus and methods consistent with certain aspects of the present disclosure, as detailed in the appended claims.
Optionally, the interface testing method provided by the embodiments of the present disclosure may be applied to an electronic device, and the electronic device may have a display screen or a projection device to output an image. Optionally, the electronic device may be a terminal device or a server device, and the terminal device may be: personal Computers (PCs), cell phones, tablet computers, wearable electronics, and the like.
In practical applications, the present disclosure may be used to interface test only one of certain types of electronic devices. For example: for a mobile phone, the interface test can be performed on only one mobile phone of a certain model of a certain brand. Of course, the interface test can be performed on electronic equipment of multiple different models respectively.
Fig. 1 is a flowchart illustrating an interface testing method according to an exemplary embodiment, and an interface testing method, as shown in fig. 1, for use in an electronic device includes the following steps.
In step S11, a screenshot of the interface to be tested is obtained.
The interface to be tested can be an interface of an application program, a webpage and the like. It will be appreciated that the screenshot is a visual image taken by a computer that can be displayed on a screen or other display device. The screenshot may be normally captured by the operating system or dedicated screenshot software, or may be captured by an external device such as a digital camera. The method and the device can perform screenshot operation on the interface to be tested so as to obtain the screenshot of the interface to be tested, and can also directly obtain the screenshot obtained after screenshot operation is performed on other equipment.
In an optional embodiment, the present disclosure may open the interface to be tested using the chrome kernel, wait for a period of time (e.g., 5 seconds) to ensure that the interface to be tested is completely loaded, and then perform the screenshot.
This disclosure can be through carrying out the screenshot to the whole display content of electronic equipment's display screen, promptly: a full screen shot is obtained. It is understood that when the display screen of the electronic device displays the interface to be tested, other contents may be displayed simultaneously, such as: battery power, time, etc.
When other contents except the interface to be tested exist in the full screen capture, the content except the interface to be tested in the full screen capture can be deleted.
Alternatively, since the resident content displayed in the electronic device tends to be a fixed size and location, the present disclosure may obtain the size and location of the resident content in advance, and then delete the resident content at that location and size in the full screen shot.
In step S12, the difference in pixel values between the screenshot and the expected image of the interface to be tested is obtained.
The expected graph of the interface to be tested is an image obtained according to the designed interface after the interface designer finishes interface design.
In order to correctly obtain the difference between the screenshot and the pixel value of the expected diagram of the interface to be tested, the present disclosure may adjust the size of the screenshot to the size of the expected diagram when the size of the screenshot is not consistent with the size of the expected diagram, so that the size of the screenshot is consistent with the size of the expected diagram, and then perform the processing of step S12 and the subsequent steps.
For each interface to be tested, the present disclosure may determine pixel value differences using a desired map of the interface to be tested.
Optionally, step S12 may specifically include:
respectively subtracting the pixel value of each pixel in the screenshot from the pixel value of the pixel at the same position in the expected image of the interface to be tested to obtain the pixel difference of the pixel at the same position in the screenshot and the expected image;
and determining the difference of the pixel values of the screenshot and the expected image according to the pixel difference.
The pixel value of the pixel may be a gray scale value of the pixel, or may be a luminance value (e.g., RGB value) of a color of the pixel. Optionally, the screenshot and the expected image may be converted into a grayscale, and then the grayscale value of each pixel in the screenshot which is the grayscale is respectively different from the grayscale value of the pixel at the same position in the expected image which is the grayscale, so as to obtain the grayscale difference between the pixels at the same position in the screenshot and the expected image. Through the conversion of the gray-scale map, the calculation amount required by the process of obtaining the pixel difference is smaller, and the rapid determination of the pixel difference is facilitated.
The manner of determining the difference between the pixel values of the screenshot and the expected image according to the pixel difference can be various, and one of the following four manners:
and calculating the variance of the pixel difference of the pixels with the same position, and determining the variance as the difference of the pixel values of the screenshot and the expected image.
And secondly, calculating the standard deviation of the pixel difference of the pixels with the same positions, and determining the standard deviation as the pixel value difference between the screenshot and the expected image.
And thirdly, calculating the sum of absolute values of pixel differences of pixels with the same positions, and determining the sum of the absolute values as the difference of the pixel values of the screenshot and the expected image.
And fourthly, calculating the absolute value of the pixel difference of the pixels with the same positions, determining the number of the pixels with the absolute values larger than a preset threshold value, and determining the number as the pixel value difference between the screenshot and the expected image.
In step S13, an interface test result of the interface to be tested is determined according to the difference between the screenshot and the pixel value of the expected image.
Wherein, step S13 may specifically include:
and determining that the interface to be tested is displayed normally under the condition that the pixel value difference meets the preset difference requirement, and determining that the interface to be tested is displayed abnormally under the condition that the pixel value difference does not meet the preset difference requirement.
The preset difference requirement may correspond to a determination of the pixel value difference, for example: when the pixel value difference is determined in the first manner, the preset difference requirement may be that the pixel value difference is lower than a first value; when the pixel value difference is determined in the second mode, the preset difference requirement can be that the pixel value difference is lower than a second numerical value; when the pixel value difference is determined in the third way, the preset difference requirement can be that the pixel value difference is lower than a third numerical value; when the pixel value difference is determined in the above-described manner, the preset difference requirement may be that the pixel value difference is lower than the fourth value. Of course, the preset difference requirement is only exemplary, and in practical applications, the preset difference requirement may be more, for example, when the pixel value difference is determined in the above manner, the preset difference requirement may be that the ratio of the pixel value difference to the number of pixels included in the screenshot is lower than a fifth value.
No matter which kind of preset difference requirement is adopted, under the condition that the pixel value difference meets the preset difference requirement, the difference between the screenshot and the pixel value of the expected image can be shown to be small, so that the to-be-tested interface can be determined to be normally displayed; otherwise, the display abnormality of the interface to be tested can be determined.
According to the interface testing method provided by the embodiment of the disclosure, whether the interface is normally displayed can be determined through the difference of the screenshot and the pixel value of the expected image, and code writing is not needed. Meanwhile, the interface testing method provided by the embodiment of the disclosure can be applied to all page structures, so that codes do not need to be rewritten for different page structures, and the efficiency of UI testing can be higher.
Fig. 2 is a flowchart illustrating an interface testing method according to another exemplary embodiment, and as shown in fig. 2, an interface testing method includes the following steps.
In step S21, a screenshot of the interface to be tested is obtained.
Step S21 is similar to step S11 shown in fig. 1 and will not be described again.
In step S22, the difference in pixel values between the screenshot and the expected image of the interface to be tested is obtained.
Step S22 is similar to step S12 shown in fig. 1 and will not be described again.
In step S23, an interface test result of the interface to be tested is determined according to the difference between the screenshot and the pixel value of the expected image.
Step S23 is similar to step S13 shown in fig. 1 and will not be described again.
In step S24, in the case where the pixel value difference does not satisfy the preset difference requirement, the transparency of one picture of the screenshot and the desired picture is set to a preset value.
Optionally, the preset value is greater than 0 and less than 1.
Optionally, the value range of the transparency of the picture may be [0, 1], when the transparency of the picture is 0, the picture is completely opaque, when the transparency of the picture is 1, the picture is completely transparent, and the larger the value of the transparency is, the larger the transparency of the picture is.
Optionally, the preset value may be 0.5.
In step S25, a picture with a preset transparency is overlaid on the other picture of the screenshot and the desired picture, and an overlapped picture is obtained.
When the size of the screenshot is not consistent with the size of the expected diagram, the size of the screenshot can be adjusted to the size of the expected diagram so that the size of the screenshot is consistent with the size of the expected diagram, and then the processing of the step S25 and the subsequent steps can be executed.
In practical applications, step S25 may merge the two pictures into one picture after overlaying the picture with the preset transparency on the other picture of the screenshot and the desired picture, that is, the overlapped picture is one picture. Of course, two pictures may be retained and displayed simultaneously (instead of being combined into one picture) by setting two layers, and the like, where the overlapped pictures are two pictures.
In step S26, the superimposed picture is displayed.
Because the transparency of one picture is set as a preset value, the picture has certain transparency, and the difference between the two pictures can be observed by overlapping the pictures after the picture is covered on the other picture.
The following describes steps S24 to S26 with schematic diagrams:
the interface to be tested is an interface displayed with a candle and the text "candle flash", fig. 3 is a screenshot of the interface to be tested, fig. 4 is an expected diagram of the interface to be tested, the transparency of the expected diagram shown in fig. 4 is set to 0.5, and the expected diagram with the transparency of 0.5 is overlaid on the screenshot shown in fig. 3, so that an overlapped picture shown in fig. 5 is obtained. Through the overlapped pictures shown in fig. 5, the difference between the screenshot and the expected drawing can be observed, so that the place where the interface to be tested is inconsistent with the expected drawing is determined, and the inconsistent place is modified. Of course, with the overlapping pictures shown in fig. 5, the adjustment mode can also be determined, such as: the candle in the interface to be tested corresponding to the screenshot shown in fig. 3 is moved in parallel to the right to the candle in the desired diagram shown in fig. 4.
In practical application, the transparency of the screenshot can be set to be a preset value, and the screenshot with the transparency as the preset value is covered above the expected image to obtain the overlapped image.
In practical application, the transparency of the screenshot and the transparency of the expected image can be set as preset values at the same time, and then one of the pictures is covered above the other picture to obtain the overlapped pictures.
Fig. 6 is a flowchart illustrating an interface testing method according to another exemplary embodiment, and as shown in fig. 6, an interface testing method includes the following steps.
In step S31, a screenshot of the interface to be tested is obtained.
Step S31 is similar to step S11 shown in fig. 1 and will not be described again.
In step S32, the pixel value of each pixel in the screenshot is respectively subtracted from the pixel value of the pixel at the same position in the expected graph of the interface to be tested, so as to obtain the pixel difference between the screenshot and the pixel at the same position in the expected graph.
In step S33, the difference in pixel values between the screenshot and the desired image is determined from the pixel difference.
Step S32 and step S33 are specific implementations of step S12 of the method shown in fig. 1. The processing procedures of step S32 and step S33 have already been described in the embodiment shown in fig. 1, and are not described again.
In step S34, an interface test result of the interface to be tested is determined according to the difference between the screenshot and the pixel value of the expected image.
Step S34 is similar to step S13 shown in fig. 1 and will not be described again.
In step S35, in a case where the difference in pixel value does not satisfy the preset difference requirement, a difference image is generated from the difference in pixel of the pixel at the same position in the captured image and the desired image.
Optionally, the present disclosure may perform Diff operation on the screenshot and the expected image, and obtain a Diff picture, which is a difference image. In an alternative embodiment of the present disclosure, a pixelMatch method of a third party packet may be used to perform Diff operations. The pixelMatch method can respectively convert the screenshot and the expected graph into binary arrays, then compares whether each value in the binary arrays is consistent, and proves that the screenshot is the same as the expected graph if the values are consistent; otherwise, a difference (i.e., diff value) is calculated.
In another optional embodiment of the disclosure, the Diff operation may be implemented by the cvAbsDiff function of OpenCV, which is a function in OpenCV that computes the absolute value of the two array differences. In particular, the present disclosure may utilize the following function to obtain the pixel difference:
void cvAbsDiff(const CvArr*src1,const CvArr*src2,CvArr*dst)。
in the above function, src1 is the first primitive array, src2 is the second primitive array, and dst is the output array (i.e., the absolute value of the array difference between the first primitive array and the second primitive array).
In this disclosure, the first primitive array may be an array formed by pixel values of pixels in a screenshot; the second primitive array may be an array formed by pixel values of pixels in the desired image; the output array is an array formed by absolute values of pixel differences of all pixels in the screenshot and the expected image.
After an array consisting of absolute values of pixel differences of pixels in the screenshot and the expected image is obtained, the difference image can be generated according to the array.
Step S35 is explained below by a schematic diagram:
the interface to be tested is the interface displayed with candle and the words "candle flash", fig. 3 is a screenshot of the interface to be tested, and fig. 4 is an expected view of the interface to be tested. Both fig. 3 and fig. 4 are gray scale diagrams. Obtaining a first primitive array formed by pixel values of pixels in the screenshot shown in FIG. 3; obtaining a second primitive array consisting of pixel values of pixels in the expectation graph shown in FIG. 4; and (3) performing difference on the first original array and the second original array to obtain an array formed by absolute values of pixel differences of all pixels in the screenshot and the expected image, and generating a difference image according to the array.
As can be seen from comparing fig. 3 and fig. 4, when the pixel values of two pixels at the same position are the same, the difference obtained by subtracting the pixel values of the two pixels is 0, so in an alternative embodiment, the pixel value of the pixel at the position in the difference image may be rendered to be 0 (i.e. pure black) according to the difference. In this way, since the positions of the candles in fig. 3 and 4 are different, the pixel value of the pixel at the candle position will not be 0 after the difference is made, such as when the pixel value of the black line at the candle position in fig. 3 and 4 is 0 (i.e., pure black), if the pixel value of the white area in fig. 3 and 4 is 255 (i.e., pure white), the absolute value of the difference between the pixel value of each pixel of the black line of the candle in fig. 3 and the pixel value of the pixel at the corresponding position in fig. 4 is 255, and the pixel value of the pixel at the position in the difference image that can be drawn according to the difference is 255 (i.e., pure white). In this way, in fig. 3 and 4, the pixel values are not different and are not black, and the larger the difference, the more white the pixel values tend to be.
It will be appreciated that in an alternative embodiment, the present disclosure may also invert the pixel difference, i.e.: let 255 subtract the absolute value of the pixel difference of the pixel at each position, respectively, and the result obtained as an array for generating a difference image. For example: when the absolute value of the pixel difference of the pixel at a certain position is 0 (there is no difference), and 255 is obtained by subtracting 0 from 255, the pixel value of the pixel at the position in the generated difference image can be 255 (i.e., pure white). When there is no difference in pixel value of a pixel at a position in the first image and the second image, the color of the pixel at the position in the difference image obtained by the inversion processing will be pure white. When there is a difference in pixel value between a pixel at a position in the first image and a pixel in the second image, the color of the pixel at the position in the difference image obtained by the inversion process will not be pure white, and the greater the difference, the more black the difference is. For the two pictures shown in fig. 3 and 4, the present disclosure can obtain a difference image as shown in fig. 7 by the inversion process.
Fig. 8 is a flowchart illustrating an interface testing method according to another exemplary embodiment, and as shown in fig. 8, an interface testing method includes the following steps.
In step S41, a screenshot of the interface to be tested is obtained.
Step S41 is similar to step S11 shown in fig. 1 and will not be described again.
In step S42, the difference in pixel values between the screenshot and the expected image of the interface to be tested is obtained.
Step S42 is similar to step S12 shown in fig. 1 and will not be described again.
In step S43, an interface test result of the interface to be tested is determined according to the difference between the screenshot and the pixel value of the expected image.
Step S43 is similar to step S13 shown in fig. 1 and will not be described again.
In step S44, when the difference in pixel value does not satisfy the preset difference requirement, a difference region between the screenshot and the expected image is detected.
Optionally, the disclosure may detect a difference area between the screenshot and the expected diagram by a detect method of OpenCV. The detect method of OpenCV is a method that can detect images. In an alternative embodiment, the present disclosure may also mark the difference region. The specific marking method may be various, such as surrounding the border of the difference region by a line, or filling the difference region by a shadow line, etc. For the screenshot shown in fig. 3 and the desired plot shown in fig. 4, the present disclosure may obtain an image containing a difference region as shown in fig. 9. In fig. 9, the present disclosure may surround the disparity region edge by a dotted line, thereby identifying the disparity region.
In step S45, when there are two difference areas having the same shape, the target display content that needs to be adjusted is determined according to the difference areas.
In step S46, the position of the target display content in the interface to be tested is adjusted to the position of the target display content in the desired graph.
The shape of the difference area can be detected, and when two difference areas with the same shape exist, the positions of one display content with the shape of the difference area in the screenshot and the expected image are different. Since the expected graph is a correct graph, the position of the display content in the difference area of the interface to be tested is known to have a deviation, and the display content in the difference area of the interface to be tested can be determined as the target display content needing to be adjusted by the method and the device. The present disclosure may move the target display content with reference to the location of the display content in the desired graph.
Alternatively, the present disclosure may determine a distance between the two difference regions (e.g., distance D1 shown in fig. 9), and then adjust the position of the target display content in the interface to be tested to the position of the target display content in the desired graph.
Optionally, the two regions of difference with the same shape include: the first difference region and the second difference region, step S45 may specifically include:
and under the condition that the first difference area is the area where the first display content in the interface to be tested is located and the second difference area is the area where the first display content in the expected graph is located, determining the first display content as the target display content needing to be adjusted.
Optionally, step S46 may specifically include:
and moving the target display content to the direction of the second difference area by a first distance, wherein the first distance is the distance between the first difference area and the second difference area.
The following is illustrated by way of example in the accompanying drawings: as shown in fig. 9, the first differential area 001 and the second differential area 002 are the same in shape, and the first differential area 001 is the area where the candle is located in the sectional view shown in fig. 3, and the second differential area 002 is the area where the candle is located in the desired view shown in fig. 4. If the distance between the first difference area 001 and the second difference area 002 is D1, the present disclosure may determine that the adjustment manner of the interface to be tested corresponding to the screenshot shown in fig. 3 is: the candle in the interface to be tested corresponding to the screenshot shown in fig. 3 is moved D1 in the direction of the second zone of differentiation 002. Thus, the interface to be tested corresponding to the screenshot shown in fig. 3 may not have a difference from the expected diagram of the interface to be tested corresponding to the expected diagram shown in fig. 4, so as to ensure that the interface to be tested shown in fig. 3 is displayed normally.
Of course, in practical applications, the present disclosure may also adjust the position of the target display content in the interface to be tested to the position of the target display content in the expected graph by adjusting the coordinates of the target display content. For example: the coordinates of the target display contents (such as the candle shown in FIG. 4) in the desired diagram are (X)1,Y1) Then, the position of the target display content (such as the candle shown in FIG. 3) in the interface to be tested is adjusted to (X)1,Y1) And (4) finishing.
In practical application, the present disclosure may sequentially test a plurality of interfaces to be tested, for example: and opening each interface to be tested in sequence, then capturing the pictures, and comparing the pictures with the corresponding expected pictures respectively to determine the difference between the pixel values of each captured picture and the corresponding expected pictures respectively, and further determining whether each interface to be tested is displayed normally.
In an alternative embodiment, the present disclosure may first test the whole page, and then trigger the change of the whole page and test the changed whole page. The whole page can be a main interface of an application program or a home page of a website and the like. The main interface of the application program is the interface displayed first after the application program is opened, and generally has a virtual key or a menu for triggering other interfaces to display. The first page of the website is an entry webpage of the website and can be used for guiding a user to view the content of each webpage in the website.
Fig. 10 is a flowchart illustrating an interface testing method according to another exemplary embodiment, in which expected graphs of interfaces to be tested are sequentially arranged in a preset testing order, as shown in fig. 10, and the interface testing method includes the following steps.
In step S50, opening each interface to be tested in sequence according to a preset testing sequence;
step S50 is to open the interfaces to be tested according to the same sequence as the expected graph arrangement sequence of the interfaces to be tested, so that the present disclosure can select the expected graphs with the same sequence according to the opening sequence of the interfaces to be tested and compare the expected graphs.
And S51, selecting an expectation graph with the sequence consistent with the test sequence of the currently opened interface to be tested from the expectation graphs of the interfaces to be tested, and determining the selected expectation graph as the expectation graph of the currently opened interface to be tested.
In step S52, a screenshot of the interface to be tested is obtained.
Step S52 is similar to step S11 shown in fig. 1 and will not be described again. It is understood that, every time step S50 opens one interface to be tested, step S52 may perform a screenshot on the interface. Optionally, step S52 may wait for the interface to be completely loaded before performing the screenshot.
In step S53, the difference in pixel values between the screenshot and the expected image of the interface to be tested is obtained.
In step S54, an interface test result of the interface to be tested is determined according to the difference between the screenshot and the pixel value of the expected image.
Step S53 is similar to step S12 shown in fig. 1 and will not be described again.
Step S54 is similar to step S13 shown in fig. 1 and will not be described again.
Through the embodiment shown in fig. 10, the test of a plurality of interfaces to be tested can be automatically realized without human intervention, and the test is very quick.
FIG. 11 is a block diagram illustrating an interface testing device according to an exemplary embodiment. Referring to fig. 11, the apparatus includes a screen shot obtaining unit 121, a difference obtaining unit 122, and a result determining unit 123.
The screenshot obtaining unit 121 is configured to perform screenshot obtaining of an interface to be tested;
the difference obtaining unit 122 is configured to perform obtaining a difference between pixel values of the screenshot and a desired image of the interface to be tested;
the result determining unit 123 is configured to perform interface test result determination for the interface to be tested according to the difference between the screenshot and the pixel value of the expected image.
Optionally, the result determining unit 123 may be specifically configured to perform: and determining that the interface to be tested is displayed normally under the condition that the pixel value difference meets the preset difference requirement, and determining that the interface to be tested is displayed abnormally under the condition that the pixel value difference does not meet the preset difference requirement.
Optionally, the apparatus shown in fig. 11 may further include:
the picture setting unit is configured to execute the step of setting the transparency of one picture in the screenshot and the expected picture as a preset value under the condition that the pixel value difference does not meet the preset difference requirement;
the image covering unit is configured to cover the image with the preset transparency on the other image in the screenshot and the expected image to obtain an overlapped image;
a picture display unit configured to perform displaying the overlapped pictures.
Optionally, the apparatus shown in fig. 11 may further include:
and the image generating unit is configured to execute the step of generating a difference image according to the pixel difference of the pixels at the same position in the screenshot and the expected image under the condition that the pixel value difference does not meet the preset difference requirement.
Optionally, the difference obtaining unit 122 may specifically include:
the pixel difference obtaining subunit is configured to perform difference between the pixel value of each pixel in the screenshot and the pixel value of a pixel at the same position in the expected image of the interface to be tested, so as to obtain the pixel difference between the screenshot and the pixel at the same position in the expected image;
and the difference obtaining subunit is configured to determine the difference of the pixel values of the screenshot and the expected image according to the pixel difference.
Optionally, the apparatus shown in fig. 11 may further include:
the area monitoring unit is configured to detect a difference area between the screenshot and the expected image under the condition that the pixel value difference does not meet a preset difference requirement;
a content determination unit configured to perform, when there are two difference regions having the same shape, determining target display content that needs to be adjusted according to the difference regions;
and the content adjusting unit is configured to adjust the position of the target display content in the interface to be tested to the position of the target display content in the expected graph.
Optionally, the expected diagrams of the interfaces to be tested are sequentially arranged according to a preset test sequence, and the apparatus shown in fig. 11 may further include:
the interface opening unit is configured to execute the sequential opening of the interfaces to be tested according to a preset test sequence;
and the picture opening unit is configured to select a desired picture with the sequence consistent with the test sequence of the currently opened interface to be tested from the desired pictures of the interfaces to be tested, and determine the selected desired picture as the desired picture of the currently opened interface to be tested.
The interface testing device provided by the embodiment of the disclosure can determine whether the interface is normally displayed through the difference of the pixel values of the screenshot and the expected image, and does not need to write codes. Meanwhile, the interface testing method provided by the embodiment of the disclosure can be applied to all page structures, so that codes do not need to be rewritten for different page structures, and the efficiency of UI testing can be higher.
With regard to the apparatus in the above-described embodiment, the specific manner in which each module performs the operation has been described in detail in the embodiment related to the method, and will not be elaborated here.
Fig. 12 is a block diagram of an electronic device 800 shown in accordance with an example embodiment. Referring to fig. 12, the electronic device may include:
a processor 801;
a memory 802 for storing instructions executable by the processor 801;
the processor 801 is configured to execute instructions to implement any one of the interface testing methods provided by the embodiments of the present disclosure.
In an exemplary embodiment, there is also provided a computer-readable storage medium comprising instructions, such as the memory 802 comprising instructions, which when executed by the processor 801 of the electronic device 800, enable the electronic device to perform any one of the interface testing methods provided by embodiments of the present disclosure. Alternatively, the computer readable storage medium may be a ROM, a Random Access Memory (RAM), a CD-ROM, a magnetic tape, a floppy disk, an optical data storage device, and the like.
In an exemplary embodiment, a computer program product is also provided, which includes a computer program/instruction, and the computer program/instruction implements any one of the interface testing methods provided by the embodiments of the disclosure when executed by a processor.
Other embodiments of the disclosure will be apparent to those skilled in the art from consideration of the specification and practice of the disclosure disclosed herein. This application is intended to cover any variations, uses, or adaptations of the disclosure following, in general, the principles of the disclosure and including such departures from the present disclosure as come within known or customary practice within the art to which the disclosure pertains. It is intended that the specification and examples be considered as exemplary only, with a true scope and spirit of the disclosure being indicated by the following claims.
It will be understood that the present disclosure is not limited to the precise arrangements described above and shown in the drawings and that various modifications and changes may be made without departing from the scope thereof. The scope of the present disclosure is limited only by the appended claims.
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:一种数据处理的方法、装置、电子设备及介质