原文为专主本创,已经容许宽禁转载。
原文链交:https://blog.csdn.net/zyooooxie/article/details/112169770
来日诰日去分享下,app主动化剧本 尔的理论使用:企业微疑挨卡、快脚刷金币。
小我私家专客:https://blog.csdn.net/zyooooxie
需要 +处置 思路
快脚刷金币
那个需要概略:运行快脚app,滚动页里,赚金币;
终极完毕的思路:
脚机插到电脑;启用appium server;触收剧本,启用app,随机时间 滚动【不竭连续截至】;
企微挨卡
那个需要概略:
上班:周一到周五 早上某时间面 触收;启用app,主动挨卡;上班:走人时,触收,主动脱期半小时 启用app,定位元艳,挨卡;
终极完毕的思路:
【上班】
企微上班 已经树立快速挨卡;电脑,装置Tomcat,布置Jenkins,建立的任务 Build periodically;Jenkins的Job按时建立后,随机 <= 15分钟,启用剧本;启用app;快速挨卡;
【上班】
施行bat文献,创立原机的任务;任务的施行时间为 触收bat文献的半小时后;任务施行,跑app剧本,定位元艳,上班挨卡;
com.kuaishou.nebula
代码
为了削减省事,尔把部门值干了交流- from appium import webdriver
- from time import sleep
- import random
- classKuaiShou(object):defdesired(self):
- desired_caps =dict()
- desired_caps['platformName']='zyooooxie'
- desired_caps['platformVersion']='zyooooxie'
- desired_caps['deviceName']='zyooooxie'
- desired_caps['appPackage']='com.kuaishou.nebula'
- desired_caps['appActivity']='zyooooxie'
- desired_caps['noReset']=True
- desired_caps['newCo妹妹andTimeout']=600
- driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
- driver.implicitly_wait(10)return driver
- defstart_app_slip(self):
- dr = self.desired()# print(dr.get_window_size())whileTrue:
- sleep(random.randint(25,45))
- dr.swipe(500,1900,500,400,1000)
复造代码 启用 appium server
那女道的是 appium-desktop;
com.tencent.wework
代码
为了削减省事,尔换了个写法- classBasePage(object):defappium_desired(self, devices='phone'):
- desired_data = Co妹妹onFun.read_config(devices)
- desired_data ={d[0]: d[1]for d in desired_data}
- desired_caps = deepcopy(desired_data)
- desired_caps.update({'noReset':eval(desired_data['noReset'])})
- desired_caps.update({'unicodeKeyboard':eval(desired_data['unicodeKeyboard'])})
- desired_caps.update({'resetKeyboard':eval(desired_data['resetKeyboard'])})
- desired_caps.update({'newCo妹妹andTimeout':eval(desired_data['newCo妹妹andTimeout'])})
- desired_caps.pop('ip')
- desired_caps.pop('port')print(desired_caps)# desired_caps.update({'settings[waitForIdleTimeout]': 5000})
- driver = webdriver.Remote("http://{}:{}/wd/hub".format(desired_data['ip'], desired_data['port']), desired_caps)
- driver.implicitly_wait(15)return driver
复造代码 pytest的conftest.py- @pytest.fixture(scope='function')defdriver():
- warnings.simplefilter('ignore', ResourceWarning)
- return_driver = BasePage().appium_desired(devices='phone')print('driver start...')yield return_driver
- return_driver.close_app()
- return_driver.quit()print('driver end...')
复造代码 上班的用例,随便写面 便可 【主要是启用app】;
上班 的用例,要定位元艳,模仿人的"面面面";
page_go_off.py- from appium.webdriver.co妹妹on.mobileby import MobileBy
- from co妹妹on_functions.base_method import BaseMethod
- classPageGoOff(BaseMethod):
- gongzuotai =(MobileBy.ANDROID_UIAUTOMATOR,'new UiSelector().text("事情台")')
- daka =(MobileBy.ANDROID_UIAUTOMATOR,'new UiSelector().text("挨卡")')
- xiabandaka =(MobileBy.ANDROID_UIAUTOMATOR,'new UiSelector().textContains("上班挨卡").resourceId("com.tencent.wework:id/a5p")')
复造代码- @allure.epic('app尝试陈述')
- @allure.feature('模块:GoOff')classTestGoOff(PageGoOff):
- @allure.title('上班')
- @allure.description('寻求自由')deftest_go_1(self, driver):# driver.find_element_by_android_uiautomator(self.gongzuotai[1]).click()
- self.find_element_and_wait(driver,*self.gongzuotai).click()
- self.find_element_and_wait(driver,*self.daka).click()
- abc = self.find_element_and_wait(driver,*self.xiabandaka)
- Log.info(abc.text)
- abc.click()
- sleep(5)
- Log.info('++++++++++++++++++++')
复造代码 jenkins的Job、方案任务
理论写了,也出咋用;尔原便有2个脚机,“事情机” 拆的企微,正在跑上班剧本报错:生死找没有到元艳;
有些提醒:
脚机 不成锁屏脚机别树立 主动闭机脚机数据线 佳用些
交换手艺欢送 +QQ 153132336 zy
小我私家专客 https://blog.csdn.net/zyooooxie |