2023年6月29日发(作者:)
python实现图像识别⽔果_使⽤Python实现基于图像识别的iOS⾃动化测试相对于Android来讲,iOS⽐较封闭。这⼀点,在设计和评估⾃动化测试⽅案的时候感受尤为强烈。iOS平台上没有特别好⽤的⾃动化测试⼯具。苹果针对iOS提供了UI Automation的Instruments⼯具,以及相配合使⽤的Javascript库,可是使⽤起来有很⼤的局限性。主要问题是必须使⽤Javascript来编写测试脚本,不⽀持其余语⾔,很难实现复杂的功能。并且,在⼀台mac机上同时只能运⾏⼀个Instruments实例,没法对多个设备同时进⾏测试。在多数游戏应⽤中,UI都不是使⽤标准控件的,因此不可避免的要使⽤图像识别技术。⽽iOS UIAutomation API⾥⾯除了截屏的功能并⽆提供多少帮助。html所幸的是咱们找到了mTaskWithPathArgumentsTimeout()⽅法。这个⽅法是⽤来调⽤外部程序的。巧妙地利⽤这个⽅法能够实现⽐较复杂的功能。可是我仍然但愿测试逻辑能⽤Python来写,由于Python⽤起来⾄关顺⼿并且有成熟的测试框架。python要让UI Automation的Javascript脚本遵从Python脚本的指挥,能够把Javascript脚本写成⼀个服务器,接受来⾃Python脚本的指令,并调⽤相应的API完成任务。通讯的任务可使⽤socket。固然Javascript脚本⾃⼰没法完成这个任务,因此须要调⽤外部程序来实现。这个外部程序能够⽤Python来写,我称之为,⽽Javascript脚本就是,由于是master建⽴的slave进程。固然实际上slave并不听命于master,master反⽽要遵从slave从socket得到的指令。ios这样⼀来,只须要写个驱动层,把API调⽤包装⼀下,经过socket传输到,再经过的stdout返回到,再经过调⽤UI Automation API就实现了Python脚本的⾃动化测试。固然本⽂没有涉及不少细节实现问题,留给之后有时间再阐述。服务器如下是简化的⽰例代码:sage("Instruments started.")var target =arget();var app =ostApp();varwindow =ndow();var host =();var screenshotPath = "screen";var python_path =mTaskWithPathArgumentsTimeout("/usr/bin/which", ['python'], 1).e("n", "");if (python_path == "") {or("python is not found.");}else{while(1) {var result =mTaskWithPathArgumentsTimeout(python_path,[''], 30);var ins = ("" + ).split('n');if (ins[0] == 'exitApp')break;switch (ins[0]){case 'tap':var x = ins[1];var y = ins[2];({x:x, y:y})break;case 'input':var s = ins[1];rd().typeString(s)break;case 'captureScreen':eScreenWithName(screenshotPath);break;default:break;}}}
发布者:admin,转转请注明出处:http://www.yc00.com/news/1688019979a67340.html
评论列表(0条)