標籤:pytho epo mac desktop stc com cli unittest cal
上午剛把macaca的環境在公司的電腦上吧web 端的環境給搭建好,於是乎,看看網上的例子,看看官方的文檔
https://macacajs.github.io/wd.py/ 可以在這個連結看到原滋原味針對python的api介面,還有例子,其實看著官方給出來的文檔和例子是那麼簡潔通俗易懂,所以無論學什麼我感覺學習官網的例子還是很重要的,搭好環境要不要實踐呢,當然我們的答案是肯定的,實踐出真知,動手,拿部落格園的登入,和登入後在個人中心搜尋為例子,算是對macaca的入門吧。
https://passport.cnblogs.com/user/signin
首先我們去查看下登入介面,
看到這個我們是不是感覺很爽啊,是的 直接id就能搞定了,這對我們初學一個工具的人來說有沒有很簡單,有沒有很easy,那麼我們第一個的登入用例的輸入框的定位是不是就很好定位了,通過id就可以定位到我們的所需要的元素了,忘了還有一個斷言啊,這裡的斷言我們就沒有用id,換個定位方式吧,定位這個介面的設定檔,咋一看,classname完全可以定位,soeasy了,那麼我們接著來看下登陸後去搜尋園友
再次被我們發現了,這個輸入框和搜尋是不是還是很好定位的啊,小夥伴們都知道,那麼這樣是沒有難度的,沒有難度的,很快我們的用例就能搞定,於是乎,獻上代碼。
from macaca import WebDriverimport unittestimport HTMLTestRunner,timedie_arp={ ‘platformName‘:‘Desktop‘, ‘browserName‘:‘electron‘}server_url={ ‘hostname‘:‘localhost‘, ‘post‘:3456}class BokeyuanTest(unittest.TestCase): @classmethod def setUpClass(cls): cls.deriver=WebDriver(die_arp,server_url) cls.deriver.init() cls.deriver.get(‘https://passport.cnblogs.com/user/signin‘) @classmethod def tearDownClass(cls): cls.deriver.quit() def test_login(cls): cls.deriver.element_by_id(‘input1‘).send_keys(‘北漂的雷子‘) cls.deriver.element_by_id(‘input2‘).send_keys(‘li.930423‘) cls.deriver.element_by_id(‘signin‘).click() cls.assertEqual(cls.deriver.element_by_class_name(‘set_profile‘).text,‘編輯設定檔‘) def test_serc(cls): cls.deriver.element_by_id(‘txt_user_name‘).send_keys(‘逍遙豆‘) cls.deriver.element_by_id(‘btn_blue‘).click() cls.assertTrue(‘逍遙豆‘,cls.deriver.title)if __name__ == ‘__main__‘: suite = unittest.TestSuite() now = time.strftime(‘%Y-%m%d‘, time.localtime(time.time())) report_dir = r‘%s.html‘ % now suite.addTests(unittest.TestLoader().loadTestsFromTestCase(BokeyuanTest)) re_open = open(report_dir, ‘wb‘) runner = HTMLTestRunner.HTMLTestRunner(stream=re_open, title=‘demo by macaca‘, description=‘測試結果‘) runner.run(suite)
運行運行,
速度是不是很快呢,看看我們的測試報告
完美,測試完畢,測試報告已出,後續實驗進行中中,Macaca不錯,阿里開源
macaca測試web小例子