当前位置:   article > 正文

全网首篇开源的AI自动化测试项目实战_开源ai项目 关于测试

开源ai项目 关于测试

很多外包公司都有一套自动化测试平台,可以销售给甲方(银行保险之类公司);而像一些互联网大厂通过自己技术人员进行开发,一般实在appium基础上再进行深度开发。AI自动化思路是结合appium加入图像识别以及ocr,在八大定位元素基础上,增加图像识别以及文本识别(ocr),实现自动化测试。

以下是工作app中登录实战,使用了百度飞浆进行ocr识别,然后计算出坐标位置,进行点击操作,然后再输入用户名

  1. from appium import webdriver
  2. import time
  3. from config import setting
  4. from paddleocr import PaddleOCR
  5. desired_caps = dict()
  6. desired_caps['platformName'] = 'Android' # 可以写成android
  7. desired_caps['platformVersion'] = '12' # 11.1.0等都可以写成11
  8. desired_caps['deviceName'] = '测试手机型号' # 设备名字可以随便写,但是不可以为空
  9. desired_caps['appPackage'] = '测试app包'
  10. desired_caps['appActivity'] = '你测试app的MainActivity'
  11. desired_caps['noReset'] = True # 打开app时不清除数据
  12. desired_caps['udid'] = "你的测试设备"
  13. # desired_caps['udid'] = "80fe4bfb"
  14. # desired_caps['udid'] = "9WDNW21107036993"
  15. # desired_caps['automationName'] = "UiAutomator2"
  16. desired_caps['unicodeKeyboard'] = True
  17. desired_caps['resetKeyboard'] = True
  18. #启动appium服务
  19. # cmd = r'start appium -a 127.0.0.1 -p 4723 -bp 4724'
  20. # pr = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True)
  21. # pr.wait(timeout=3)
  22. driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
  23. time.sleep(10) # 等待20"
  24. img_folder = setting.OCR_DIR
  25. screen_save_path = img_folder + '登录.png'
  26. # # time1 = time.strftime('%Y%m%d%H%M', time.localtime(time.time()))
  27. # # screen_save_path = img_folder + time1 + '.png'
  28. driver.get_screenshot_as_file(screen_save_path)
  29. ocr = PaddleOCR()
  30. result = ocr.ocr(screen_save_path)
  31. point = []
  32. print(result)
  33. for line in result[0]:
  34. if line[1][0] == '用户名':
  35. print(line[0])
  36. # left, top, right, bottom = line[0]
  37. # print(top)
  38. a = 0
  39. b = 0
  40. for line1 in line[0]:
  41. a = a + line1[0]
  42. b = b + line1[1]
  43. # print(a)
  44. # print(b)
  45. c = a // 4
  46. e = b // 4
  47. point.append(c)
  48. point.append(e)
  49. x, y = point
  50. time.sleep(2)
  51. # action.tap(x=x, y=y).perform()
  52. driver.tap([(x, y)], 100)
  53. time.sleep(3)
  54. driver.switch_to.active_element.send_keys("编程老怪") # 输入文本
  55. time.sleep(20)
  56. driver.quit()

 

 

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号