当前位置:网站首页>Appium practice | make the test faster, more stable and more reliable (I): slice test
Appium practice | make the test faster, more stable and more reliable (I): slice test
2022-07-07 04:52:00 【Huo Laoshi】
This article is for the Hogwarts Institute of testing Appium Pro One of the series of original translation articles , It aims to popularize the most advanced test development technology . Advanced learning , Add group at the end of the text .
Use Appium when , It's going to be slow and unstable .Appium
The underlying tools used may limit the speed , In functional testing , Many environmental problems can also lead to the instability of automated testing . There are some ways to avoid these problems . This article is one of the series , Stability and speed will also be discussed in the following article .
establish Session Flaky
In fact, it means that it can't be relied on – If the local test is successful , It may fail in the future , Is this unreliable ? The problem is very complicated ,Appium
There's really going to be instability , But you need to find the problem !
- Do you understand App Or the speed of the device ,App stability , The screen size , Or dynamic content ? Whether these values are assumed to be groundless ;
- App It's unstable in itself ( May be App It's a problem of its own or man-made , Whether this problem will occur in manual operation );
- Insufficient device memory and processor computing ;
- Network problems ( use HTTP Sending to the back end may fail );
- Equipment problems ( There are all sorts of strange problems with the equipment );
If you say , None of the above is a problem , The problem must be Appium On ! Actually ,Appium It's just one of the many technologies , The following figure illustrates iOS The underlying technology stack for testing :
You see ,Appium It's not a huge monster , contrary , It uses a lot of underlying tools , The problem may be with these underlying tools ( such as XCUITest and UiAutomator2
). I hope you can find out the problem . Some problems are not isolated , It's random throughout the build . When you check the log , You'll find that this flaky phenomenon always happens at some time of the day . This is very important information , There may be a timing code running ! Ask other teams , They may know the problem .
The following article will discuss these issues in detail , Now I'm going to give you some of the things in CI On the advice of :
- Add tests to pre build , Check for flaky problems . Run it many times ( Probably 100 Time ?) To ensure reliability , If 100% adopt , very good ,merger This commit To master Branch it .
- If some of the tests fail , Indicates that there is an unreliable or flaky problem . Take a moment to investigate why , Maybe it's just about positioning or waiting .Appium Logs and step-by-step screenshots are important .
- When problems are found , If it can be solved , To solve it . If it doesn't work out , Can be directed to Appium perhaps Apple Provide error reports , You can also discard the test or comment out ( If you have the time , You can also test it manually ).
- If you keep the test in the build and allow the build to retry the test if it fails , You have to track statistics on the number of retries , And set some reliability thresholds , If the threshold is exceeded, the investigation will be conducted . If the test goes on over time , There are more and more flaky problems , There may be a problem with your app .
Appium
Testing is functional testing , It's not unit testing . Unit tests are isolated from everything else , Functional testing lives in the real world , It's a lot more chaotic . Functional testing cannot cover all code problems , Only critical user actions should be considered , And capture through a small number of tests
bug, from bug Extract valuable information from .
meanwhile , Make sure that a small number of measurements may be reliable . By strengthening some tests , You'll learn a lot about the application and the environment as a whole . So you can put what you've learned into a new test from the beginning , Instead of solving the same problem over and over again on the road ahead .
About more robustness testing techniques , We will discuss in the following article , Including how fast 、 Reliably find elements in your application !
** _
_**
** _
Come to Hogwarts test development society , Learn more advanced technologies of software testing and test development , Knowledge points cover web automated testing app automated testing 、 Interface automation testing 、 The test framework 、 Performance testing 、 Security testing 、 Continuous integration / Continuous delivery /DevOps, Test shift left 、 Test move right 、 Precision testing 、 Test platform development 、 Test management, etc , Course technology coverage bash、pytest、junit、selenium、appium、postman、requests、httprunner、jmeter、jenkins、docker、k8s、elk、sonarqube、jacoco、jvm-sandbox And other related technologies , Comprehensively improve the strength of test engineers
QQ Communication group :484590337
official account TestingStudio
For more information, please visit https://ceshiren.com
Tester community
Video data collection :https://qrcode.testing-studio.com/f?from=CSDN&url=https://ceshiren.com/t/topic/15844
Click for more information
边栏推荐
- Flask项目使用flask-socketio异常:TypeError: function() argument 1 must be code, not str
- 浙江大学周亚金:“又破又立”的顶尖安全学者,好奇心驱动的行动派
- JS variable plus
- 软件测试之网站测试如何进行?测试小攻略走起!
- Some understandings about 01 backpacker
- Common Oracle SQL statements
- Chapter 9 Yunji datacanvas company has been ranked top 3 in China's machine learning platform market
- What if the win11 screenshot key cannot be used? Solution to the failure of win11 screenshot key
- jvm是什么?jvm调优有哪些目的?
- 关于01背包个人的一些理解
猜你喜欢
Field data acquisition and edge calculation scheme of CNC machine tools
acwing 843. N-queen problem
【736. Lisp 语法解析】
Lessons and thoughts of the first SQL injection
Windows are not cheap things
How does vscade use the built-in browser?
A line of R code draws the population pyramid
Local tool [Navicat] connects to remote [MySQL] operation
System framework of PureMVC
mpf2_ Linear programming_ CAPM_ sharpe_ Arbitrage Pricin_ Inversion Gauss Jordan_ Statsmodel_ Pulp_ pLU_ Cholesky_ QR_ Jacobi
随机推荐
【數模】Matlab allcycles()函數的源代碼(2021a之前版本沒有)
深入解析Kubebuilder
计数排序基础思路
掌握软件安全测试方法秘笈,安全测试报告信手捏来
Some understandings about 01 backpacker
Introduction to the PureMVC series
史上最全学习率调整策略lr_scheduler
当 Knative 遇见 WebAssembly
【线段树实战】最近的请求次数 + 区域和检索 - 数组可修改+我的日程安排表Ⅰ/Ⅲ
AI表现越差,获得奖金越高?纽约大学博士拿出百万重金,悬赏让大模型表现差劲的任务
一图看懂!为什么学校教了你Coding但还是不会的原因...
A series of shortcut keys for jetbrain pychar
JS form get form & get form elements
Tiktok may launch an independent grass planting community platform: will it become the second little red book
【数模】Matlab allcycles()函数的源代码(2021a之前版本没有)
Comment les tests de logiciels sont - ils effectués sur le site Web? Testez la stratégie!
R descriptive statistics and hypothesis testing
sscanf,sscanf_ S and its related usage "suggested collection"
A simple and beautiful regression table is produced in one line of code~
Flask项目使用flask-socketio异常:TypeError: function() argument 1 must be code, not str