defget_latest_package(self, path, filename):
"""
"""apk_path =os.path.join(sys.path[0], filename)
ifos.path.exists(apk_path):
os.remove(filename)
url = '
'response =urllib.urlopen(url)
the_page =response.read()
soup = beautifulsoup(the_page, '
html.parser')
all_a = soup.find_all('a'
) apk_filename = ''
build_id = "
"for a in
all_a:
if a.text.strip().startswith('#'
): build_id = a.text.strip().replace("
#",""
)
if a.text.strip().endswith('
release.apk'):
apk_filename =a.text.strip()
break
full_filename =os.path.join(path, filename)
build_id = build_id + "
;包名:
" +apk_filename
full_url = '
%s/%s
' %(url, apk_filename)
urllib.urlretrieve(full_url, full_filename)
return
full_filename, build_id
defget_keyboard_present_status(self, device_name):
"""通過adb命令獲取鍵盤狀態
"""system_name =platform.system()
if system_name.lower() == '
windows':
cmdline = '
adb -s %s shell dumpsys input_method | findstr minputshown
' %device_name
else
: cmdline = '
adb -s %s shell dumpsys input_method | grep minputshown
' %device_name
my_print =os.popen(cmdline).read()
if my_print.find('
minputshown=true
') != -1:
return
true
return
false
def adb_input_text(self, device_name, set_value, get_value=""
):
"""通過adb命令對輸入框輸入值
"""if get_value != ""
: txt_len =len(get_value)
cmdline = '
adb -s %s shell input keyevent 123
' %device_name
for i in
range(txt_len):
cmdline += '
& adb -s %s shell input keyevent 67
' %device_name
cmdline += '
& adb -s %s shell input text %s
' %(device_name, set_value)
else
: cmdline = '
adb -s %s shell input text %s
' %(device_name, set_value)
cmdline
os.system(cmdline)
defget_devicename(self):
"""通過adb命令獲取裝置名
"""#
os.system("adb devices")
devicename = ""
my_print = os.popen("
adb devices
").read()
print_lists = my_print.split("\n"
)
if len(print_lists) > 3:
devicename = print_lists[1].split("\t"
)[0]
devicename
return devicename
defandroid_adb_install(self, devicename, apk_path):
""" :param devicename:
:return:
""" cmd_str = os.popen("
adb -s %s uninstall com.gf
" %(devicename,)).read()
cmd_str
cmd_str = os.popen("
adb -s %s install %s
" %(devicename, apk_path)).read()
cmd_str
return ('
successful install
')
通過上述操作,可以將jenkins上的apk安裝包直接安裝到測試機,
jenkins整合gitlab自動構建打包
1.安裝generic webhook trigger plugin 2.在流水線中配置jenkins hook gitlab提交哪個分支就對相應的分支 進行打包編譯 1.修改jenkins對應的構建描述資訊 2.修改gitlab對應的commit狀態 jenkins安裝http request外掛...
自動化持續整合Jenkins
自動化持續整合jenkins 使用jenkins配置自動化構建 jenkins入門總結 jenkins sonar 的系統,用來執行自動構建 自動部署 自動測試,質量評估的整套平台,用來做敏捷。持續整合是個簡單重複勞動,人來操作費時費力,使用自動化構建工具完成是最好不過的了。後期應該搞單元測試,自動...
Jenkins 自動化安裝外掛程式
本文首發自 jenkins 中文社群 通常,我們有兩種方法安裝 jenkins 外掛程式。第一種方法是到 jenkins 外掛程式管理頁面搜尋外掛程式,然後安裝。第二種方法是上傳 jenkins 外掛程式的 hpi 檔案安裝。這兩種方法能滿足大多數人的需求。第一種方法,如下圖所示 第二種方法,如下圖...