appium+python+unittest+HTMLRunner登录自动化测试报告
程序员文章站
2022-06-15 14:42:38
环境搭建 python3Java JDK.netFrameworknodejsandroid SDKappiumAppium-Python-Client(pip install Appium-Python-Client) 连接设备 cmd打开命令行窗口输入adb connect 127.0.0.1: ......
环境搭建
python3
java jdk
.netframework
nodejs
android sdk
appium
appium-python-client(pip install appium-python-client)
连接设备
cmd打开命令行窗口
输入adb connect 127.0.0.1:62001连接模拟器
输入adb shell dumpsys window windows | findstr "current"获取当前包名
启动appium
常用元素定位
driver.find_element_by_id
driver.find_element_by_class
driver.find_element_by_name
driver.find_element_by_xpath(//*[@text=‘text属性’])
编写登录脚本
#!/usr/bin/env python # -*- coding: utf-8 -*- from appium import webdriver import unittest import time desired_caps = { 'platformname': 'android', 'platfromversion': '5.1', 'devicename': '127.0.0.1:62001', 'apppackge': 'com.xxxx.artstation', 'appactivity': 'com.xxxx.artstation.main.login.activity.loginactivity' } # testcase类,所有测试用例继承的基本类 class logintest(unittest.testcase): # 测试前执行的初始化工作 def setup(self): self.driver = webdriver.remote('http://127.0.0.1:4723/wd/hub', desired_caps) # 测试用例执行后的善后工作。如关闭数据库连接,退出应用。无论写在哪,最后一个执行 def teardown(self): self.driver.quit() # 测试用例,必须以test开头 def test_login(self): self.driver.find_element_by_id('com.xxxx.artstation:id/tv_sure').click() time.sleep(3) # 输入账号密码 self.driver.find_element_by_id( 'com.xxxx.artstation:id/clear_edittext_username').send_keys('158xxxxxxxx') self.driver.find_element_by_id( 'com.xxxx.artstation:id/clear_edittext_password').send_keys('123456') # 点击登录按钮 self.driver.find_element_by_id( 'com.xxxx.artstation:id/tv_login').click time.sleep(3)
自动生成测试报告
#!/usr/bin/env python # -*- coding: utf-8 -*- import htmltestrunner import unittest from testcase import test_login if __name__ == '__main__': # 实例化测试套件,定义一个测试容器 suite = unittest.testsuite() # 加载测试用例 suite.addtest(test_login.logintest('test_login')) # 使用discover方法批量加载运行测试用例 # suite= unittest.defaulttestloader.discover('../testcase','test_*.py') # runner = unittest.texttestrunner() # 定义测试报告存放路径和报告名称 with open('htmlreropt.html', 'wb')as f: runner = htmltestrunner.htmltestrunner( stream=f, verbosity=2, title='xx登录自动化测试报告', description='执行人:嘻嘻' ) runner.run(suite) # 关闭测试报告 f.close()
http://blog.sina.com.cn/s/blog_184e9f38b0102yyi5.html https://tieba.baidu.com/p/6427032866
推荐阅读