❶ 在進行python手機程序開發時我們是不是必須准備一台安卓手機
一般來說不用手機也可以,比如有雲手機,手機模擬器這些,都可以用
❷ python使用安卓模擬器的優點有哪些
簡單便捷,運行快。
1、python使用安卓模擬器操作更加簡單快捷,在安卓模擬器內操作APP程序比在手機端操作要方便的多。
2、python在電腦上實用安卓模擬器運行比在手機上面快,電腦處理器比手機好。
❸ 手機上的Python怎麼運行操作,代碼在電腦上運行的出手機卻不行
如何讓自己在電腦上寫的python腳本在手機或android系統上運行
可以安裝一個Python模擬器,比如QPython。
安裝完這個apk,就可以在Android上運行Python腳本了。
關於QPython3L,網上搜索使用說明:
QPython - 使用說明
A. 面板
圖 - QPython 社區
你可以在社區中遇到其他 QPython 用戶,你可以問問題,參與話題討論,向開發者提交 BUG / 建議等等。
此外,我們將會積極地推動 QPython 最終完全開源, 因此也歡迎熱心的用戶加入我們,我們迫切地需要你們在下列領域幫助我們:
語言國際化
幫助我們進行測試並且提交測試反饋
反饋問題、提交良好的建議
建立本地社區,發起本地技術講座,共同學習
其他
❹ 如何使用python做android的自動化測試
開始第一個簡單的Android UI自動化測試
1.使用adb命令連接真機或模擬器
2.打開uiautomatorviewer工具
3.使用uiautomatorviewer工具獲取應用的元素進行定位
4.簡單介紹unittest框架的使用方法
5.使用Python編寫貓寧考勤應用注冊模塊的自動化測試
1.使用adb命令連接真機或模擬器:
手機USB連接電腦,進入開發者模式;
cmd命令:adb devices ,查看手機是否連接
這里寫圖片描述
顯示錯誤
這是因為adb的埠被佔用,我們需要查看是什麼應用佔用了這個埠(5037為adb默認埠)
cmd命令 : netstat -aon|findstr 「5037」
這里寫圖片描述
可以看到佔用5037埠對應的程序的PID號為8388;
cmd命令 : tasklist|findstr 「8388」
這里寫圖片描述
可以看出8388對應的程序為kadb.exe,說明該程序正在使用5037埠;
這時我們需要在任務管理器中結束kadb.exe進程,按快捷鍵「Ctrl+Shift+Esc」調出Windows任務管理器,找到「kadb.exe」,單擊下方的結束進程即可!
這里寫圖片描述
我們再次運行cmd命令:adb devices
這里寫圖片描述
這一步成功後我們才能運行sdk自帶的uiautomatorviewer;
我們需要用uiautomatorviewer工具來獲取元素,用於定位。
cmd命令:uiautomatorviewer,打開uiautomatorviewer界面
這里寫圖片描述
或者找到sdk目錄:sdk\tools中找到uiautomatorviewer.bat文件雙擊運行
這里寫圖片描述
2.打開uiautomatorviewer工具
這里寫圖片描述
我們可以根據text,resource-id,class等元素進行定位
3.使用uiautomatorviewer工具獲取應用的元素進行定位
這里我使用python自帶的IDLE進行編寫測試腳本,打開python文件找到IDLE(python GUI)雙擊打開,如圖:
這里寫圖片描述
4.簡單介紹unittest框架的使用方法
# -*- coding:utf-8 -*-
from uiautomator import device as d
import unittest
class Mytest(unittest.TestCase):
#初始化工作
def setUp(self):
print "--------------初始化工作"
#退出清理工作
def tearDown(self):
print "--------------退出清理工作"
#測試點擊貓寧考勤case
def test_login(self):
d(text="貓寧考勤").click()
print "--------------測試1"
#測試2
def test_z(self):
print "--------------測試2" #這里你可以寫你的第二個測試用例,
#測試3
def test_w(self):
print "--------------測試3" #這里你可以寫你的第三個測試用例。。。。。。。。。。。。。
if __name__ == '__main__':
unittest.main()
結果如下:
Testing started at 21:14 …
————–初始化工作
————–測試1
————–退出清理工作
————–初始化工作
————–測試3
————–退出清理工作
————–初始化工作
————–測試2
————–退出清理工作
Process finished with exit code 0
從結果中我們可以看出unittest框架的運行方式為:
setUp 測試1 tearDown
setUp 測試2 tearDown
setUp 測試3 tearDown
5.使用Python編寫貓寧考勤應用注冊模塊的自動化測試
# -*- coding:utf-8 -*-
from uiautomator import device as d
import time
import unittest
class MyTestSuite(unittest.TestCase):
# 初始化工作
def setUp(self):
print "--------------初始化工作"
# 退出清理工作
def tearDown(self):
print "--------------退出清理工作"
#***************************方法**************************************
# 判斷控制項是否存在 & text
def check_controls_exists(self, controls_text):
if d(text=controls_text).exists:
return 1
else:
return 0
# 判斷按鈕是否置灰 & text & clickable
def check_controls_click_text(self, controls_text):
if d(text=controls_text).info.get("clickable") is True:
return 1
else:
return 0
#assertIn(a, b) a in b
def check_ainb(self,resourceid,b):
if d(resourceId=resourceid).info.get("text") in b:
return 1
else:
return 0
#***********************************************************
# 注冊模塊
def test_Aregister(self):
try:
time.sleep(2)
#貓寧考勤開啟全新時代
self.assertEqual(self.check_controls_click_text("注冊"),1,u"貓寧考勤開啟全新時代")
# 貓寧考勤開啟全新時代--》點擊注冊按鈕進入注冊貓寧界面
d(text="注冊").click()
time.sleep(3)
#注冊貓寧界面
self.assertEqual(self.check_text("com.isentech.attendancet:id/regis_phone","請輸入手機號碼"),
1,u"注冊頁面-》請輸入手機號碼")
self.assertEqual(self.check_text("com.isentech.attendancet:id/regis_verifycode","請輸入驗證碼"),
1,u"注冊頁面-》請輸入驗證碼")
self.assertEqual(self.check_controls_click_text("獲取驗證碼"), 0,u"注冊頁面-》獲取驗證碼")
self.assertEqual(self.check_controls_click_text("《中科愛訊服務協議》"), 1,u"注冊頁面-》《中科愛訊服務協議》")
self.assertEqual(self.check_controls_click_text("注冊"), 0,u"注冊頁面-》注冊")
time.sleep(2)
#《中科愛訊服務協議》
d(text="《中科愛訊服務協議》").click()
time.sleep(2)
self.assertEqual(self.check_ainb("com.isentech.attendancet:id/title","服務協議"), 1,u"注冊頁面-》服務協議")
time.sleep(1)
d(resourceId="com.isentech.attendancet:id/title_back").click()
time.sleep(1)
#手機號不輸入是否能注冊
d(text="注冊").click()
time.sleep(3)
# 手機號只輸入1個數字是否能注冊&只輸入1個數字是否能獲取驗證碼
d(resourceId="com.isentech.attendancet:id/regis_phone").set_text("1")
self.assertEqual(self.check_controls_click_text("獲取驗證碼"), 0)
time.sleep(1)
d(text="注冊").click()
time.sleep(1)
d(resourceId="com.isentech.attendancet:id/regis_phone").clear_text()
time.sleep(1)
#只輸入5個數字是否能獲取驗證碼
d(resourceId="com.isentech.attendancet:id/regis_phone").set_text("11111")
self.assertEqual(self.check_controls_click_text("獲取驗證碼"), 0)
time.sleep(1)
d(resourceId="com.isentech.attendancet:id/regis_phone").clear_text()
time.sleep(1)
#只輸入手機號是否能注冊
d(resourceId="com.isentech.attendancet:id/regis_phone").set_text(phone_number)
self.assertEqual(self.check_controls_click_text("注冊"), 0)
time.sleep(1)
d(text="注冊").click()
time.sleep(1)
#輸入正確的驗證碼&獲取驗證碼是否高亮
d(resourceId="com.isentech.attendancet:id/regis_verifycode").set_text("5648")
time.sleep(1)
self.assertEqual(self.check_controls_click_text("獲取驗證碼"), 1)
time.sleep(2)
#密碼只輸入1個數字是否能注冊&注冊按鈕是否高亮
d(resourceId="com.isentech.attendancet:id/regis_pass").set_text("1")
d(resourceId="com.isentech.attendancet:id/regis_passAgain").set_text("1")
time.sleep(1)
self.assertEqual(self.check_controls_click_text("注冊"), 0,u"密碼只輸入1個數字是否能注冊")
time.sleep(1)
d(resourceId="com.isentech.attendancet:id/regis_pass").clear_text()
d(resourceId="com.isentech.attendancet:id/regis_passAgain").clear_text()
time.sleep(1)
#輸入不相同的密碼是否能注冊
d(resourceId="com.isentech.attendancet:id/regis_pass").set_text("123456")
d(resourceId="com.isentech.attendancet:id/regis_passAgain").set_text("12345")
time.sleep(1)
self.assertEqual(self.check_controls_click_text("注冊"), 0,u"輸入不相同的密碼是否能注冊")
time.sleep(1)
d(resourceId="com.isentech.attendancet:id/regis_pass").clear_text()
d(resourceId="com.isentech.attendancet:id/regis_passAgain").clear_text()
time.sleep(1)
#輸入正確的密碼是否能注冊&我已同意是否打鉤
d(resourceId="com.isentech.attendancet:id/regis_pass").set_text("123456")
d(resourceId="com.isentech.attendancet:id/regis_passAgain").set_text("123456")
time.sleep(1)
self.assertEqual(self.check_controls_click_resourceId("com.isentech.attendancet:id/regis_agree"), 1)
self.assertEqual(self.check_controls_click_text("注冊"), 1)
time.sleep(2)
d(text="注冊").click()
time.sleep(8)
except Exception, e:
print u"Error: 注冊模塊有問題\n", e
def test_app():
test_unit = unittest.TestSuite()
test_unit.addTest(MyTestSuite("test_Aregister"))
if __name__ == "__main__":
# 測試app
unittest.main()
❺ python能不能製作安卓模擬器如果能,怎麼做
(1)保證電腦上已經安裝了jdk並且環境變數等的配置已經完成
(2)安裝了eclipse,用於android的開發,相信做android的人應該這些都是會用到的吧
(3)下載SDK並且完成SDK的配置(因為我們需要使用到SDK文件夾tools中的一些工具工具,所以這個是必須的)
(4)安裝python IDLE(python編輯器,可以很方便的用來編寫python文件),並在環境變數裡面配置path
(5)android模擬器(也可以使用android自帶的模擬器,但是啟動實在是太慢了,太費時間,果斷放棄)~
❻ 如何使用python做android的自動化測試
一、首先說說手機自動化測試的原理 1、手機自動化測試的原理為PC上一個控制端(測試工具)與手機上的一個agent端,通過串口、USB或者無線方式將PC與手機終端相連,然後應用測試工具向手機發送請求或者命令,手機收到命令或者請求後,交給agent端解析,然後agent將這些解析的命令下發給手機的各個功能模塊所能識別的命令,調用那些功能模塊模擬操作。完成這些操作後,手機會返回一些信息,agent可以抓取這些信息,然後傳回給PC端,這樣就完成了一個完整的手機自動化測試。 2、關鍵點在於agent,有的公司是向自己的手機終端的軟體功能模塊中植入測試程序響應代碼,有的公司可以利用MMI_Command的方式來控制手機終端;原理就是給手機提供一個響應的介面。 3、而對於PC控制端,這個測試腳本用各種編程語言都可以,看如何定義 4、而又的自動化測試設計成錄制的機制,說通俗點,就是記錄手工操作的鍵盤信息或者LCD的操作信息(LCD需要用到智能識別機制) 5、自動化測試框架的搭建方法是通用的,你需要有一套自己的測試框架才能保證自動化測試的順利開展。 二、Android自動化測試方向: 1、CTS,CTS 測試基於Android instrumentation 測試, 其又基於JUnit 測試。說白了, CTS 就是一堆單元測試用例。這也是Java 語言的擅長部分。 2、 Monkey工具,Monkey是Android中的一個命令行工具,可以運行在模擬器里或實際設備中。它向系統發送偽隨機的用戶事件流(如按鍵輸入、觸摸屏輸入、手勢輸入等),實現對正在開發的應用程序進行壓力測試。Monkey測試是一種為了測試軟體的穩定性、健壯性的快速有效的方法。 3、ASE,ASE 意思為Android 腳本環境, 即我們可以通過腳本(比如Python)調用Android 的功能,從而定製一些測試。比如打電話,發簡訊,瀏覽網頁,等。我們可以擴充它的API(Java 部分), 並用python 腳本調用這些API, 從而實現豐富的測試功能。用於API 部分可以訪問到Android 全部API, python 又能靈活部署測試,所以ASE 的擴展性非常好。 4、Robotium,該工具用於黑盒的自動化測試。可以在有源碼或者只有APK 的情況下對目標應用 進行測試。Robotimu 提供了模仿用戶操作行為的API,比如在某個控制項上點擊,輸入Text 等等。(推舉你可以研究一下這個工具,開源的,我有資料) 5、可以自己開發一個手機方面的自動化測試工具,原理上一樣的 如果你想要什麼資料的話或者想一起學習研究的話,可以給我發郵件:[email protected]
❼ python:嘗試android模擬器中如何把腳本傳送到模擬器,怎麼復制到模擬器的虛擬內存卡上
文章里不是說的很清楚嗎?你先要安裝android的模擬器。就是SDK那個東西。安裝後啟動它。
其中有一個adb命令 用於與模擬器進行調試用,也可以上傳文件。
你把例子代碼編輯成一個文件,再傳遞到模擬器上去。 不過模擬器試先要設置一個SD卡。另外還要安裝一個SL4A的軟體包。
❽ 如何讓自己在電腦上寫的python腳本在手機或安卓系統上運行
對於如何讓自己在電腦上寫的python腳本在手機或安卓系統上運行呢??我有下面的看法。
9、在終端輸入adb設備。如果您看到以下信息,adb安裝正確,計算機成功地檢測到電話。如果您的系統是Win10或Win8,您可能需要首先設置「禁用強制驅動簽名」。
10,打開微信啟動,輸入python wechat_jump_auto。在終端的py,游戲將自動啟動。請運行相應的*。py文件根據電話解析度。
不要沉迷於刷分,分數太高反而會被系統清零。而且也要注意日常的娛樂,不要總是玩手機。
❾ mitmproxy安裝與安卓模擬器的配合使用-手機APP爬蟲
參考鏈接: https://zhuanlan.hu.com/p/68806789
介紹一款爬蟲輔助工具mitmproxy ,mitmproxy 就是用於MITM的proxy,MITM中間人攻擊。說白了就是伺服器和客戶機中間通訊多增加了一層。跟Fiddler和Charles最大的不同就是,mitmproxy可以進行二次開發,尤其可以對接python。
mitmproxy一般用於開發或者測試,用在爬蟲輔助也是極好的。
github地址: https://github.com/mitmproxy/mitmproxy
官網地址: https://mitmproxy.org/
進入CMD窗口,Python3執行
安裝完成後,系統將擁有 mitmproxy、mitmmp、mitmweb 三個命令,由於 mitmproxy 命令不支持在 windows 系統中運行。
控制台運行慎喊
輸出
同時打開你的默認瀏覽器
這是完畢,在隨便訪問一個網站,例如網路,一股似曾相識的感覺鋪面而來,這就是網頁版的Fiddler
接下來關閉所有 Chrome 窗口,否則命令行啟動時的附加參數將失效。打開 cmd,執行:
前面那一長串是 Chrome 的的安裝路徑,應當根據系統寬磨野實際情況修改,後面兩參數設置了代理地址游粗並強制忽略掉證書錯誤。
當我們初次運行mitmproxy或mitmmp時,
會在當前目錄下生成 ~/.mitmproxy文件夾,其中該文件下包含4個文件,這就是我們要的證書了。
windows上安裝證書很簡單,雙擊.p12結尾的證書文件即可。 安卓手機需要將對應的文件發送到手機文件,進行安裝。
在windows平台下一般使用mitmmp 控制台運行 mitmmp,出現如下結果
打開模擬器,跟fiddler和Charles的配置其實是非常類似的