环境搭建

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('') # 点击登录按钮
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

appium+python+unittest+HTMLRunner登录自动化测试报告的更多相关文章

  1. appium+python+unittest+HTMLRunner编写UI自动化测试集

    简介 获取AppPackage和AppActivity 定位UI控件的工具 脚本结构 PageObject分层管理 HTMLTestRunner生成测试报告 启动appium server服务 以py ...

  2. Appium python unittest pageobject如何实现加载多个case

    学习了Appium python项目施展的课程小伙伴都会有一个疑问,说现在所有的case都是通过一个suite进行一个方法一个方法进行添加的,但是在实际过程中我们不希望这样,我们做出来的功能是这样: ...

  3. [python]Appium+python +pytest 实现APP自动化,基于安卓

    1.安卓环境搭建 &关于app自动化,个人觉得安装过程比较复杂,脚本难度实现和web自动化差不多封装关键字即可,因此,下面会写安装.启动APP以及过程中遇到的一些坑(这一篇偏向解释给个人) & ...

  4. appium+python+unittest 测试用例的几种加载执行方式

    利用python进行测试时,测试用例的加载方式有2种: 一种是通过unittest.main()来启动所需测试的测试模块:  一种是添加到testsuite集合中再加载所有的被测试对象,而testsu ...

  5. Python HTMLTestRunner生成网页自动化测试报告时中文编码报错UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6

    1. 由于使用Python Selenium做网页自动化测试时,有截取网页上的中文信息保存到测试结果中,最终出现编码错误如下: File "D:/PycharmProjects/AutoTe ...

  6. Appium python自动化测试系列之自动化截图(十一)

    11.1 截图函数的正常使用 11.1.1 截图方法 无论是在手动测试还是自动化测试中场景复现永远是一个很重要的事情,有时候一些问题可能很难复现,这个都需要测试人员对bug有很高的敏感度,在一般的情况 ...

  7. (appium+python)UI自动化_08_unittest编写测试用例

    前言 unittest是python自带的单元测试框架,类似于Junit(Java单元测试框架).支持自动化测试,可编写测试前置&后置条件,并且可批量运行测试用例并生成测试报告. 使用unit ...

  8. 接口自动化-python unittest+requests+HTMLrunner

    从2015年毕业入行软件测试,快满4年了,之前技术分享都在百度贴吧上面,现在正式开始在博客中记录工作技术,努力成长,加油 接口测试的步骤1.组装好该接口需要的参数数据2.使用get或post附带参数数 ...

  9. (appium+python)UI自动化_09_unittest批量运行测试用例&生成测试报告

    前言 上篇文章[(appium+python)UI自动化_08_unittest编写测试用例]讲到如何使用unittets编写测试用例,并执行测试文件.接下来讲解下unittest如何批量执行测试文件 ...

随机推荐

  1. GP工作室—团队项目总结

    GP工作室-团队项目总结 这个作业属于哪个课程 https://edu.cnblogs.com/campus/xnsy/GeographicInformationScience/ 这个作业要求在哪里 ...

  2. Python 之redis操作

    Redis 是一个高性能的key-value数据库,是一种非关系型的数据库.有以下三个特点: Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用. Redis不 ...

  3. 找不到文件异常java.io.IOException: Resource [classpath:shiro.ini] could not be found.

    情景 tomcat启东时,老是报错,在classpath下找不到配置文件,但是配置文件已经放在resource目录下了 解决方案 出现该异常的原因,是因为新建的conf文件夹,识别不了,因为没有设置成 ...

  4. 深入理解JDK中的Reference原理和源码实现

    前提 这篇文章主要基于JDK11的源码和最近翻看的<深入理解Java虚拟机-2nd>一书的部分内容,对JDK11中的Reference(引用)做一些总结.值得注意的是,通过笔者对比一下JD ...

  5. 如何把您现有的流程系统数据迁徙到驰骋BPM上?

    关键词:流程系统版本切换\ 驰骋BPM. 如何把您现有的流程系统数据迁徙到驰骋BPM上?这是一个大问题.在处理改问题之前,首先要了解驰骋bpm的数据库结构,驰骋bpm的特性在做计划. 驰骋BPM的流程 ...

  6. Eclipse中文语言包安装和设置中文

    对于英语水平不好或者初学者来说使用中文开发环境可以有效提高学习效率,便于快速的学习和上手,不过对于当前的技术环境学习英语还是非常有必要的,当对Eclipse掌握到一定程度还是应该多使用英语环境来开发, ...

  7. Spring 依赖注入两种方式

    (1):通过 setter 方法注入: <property name=“ ” ></property> 其中,name属性的取值依setter方法名而定,要求这个类里面这个对应 ...

  8. idea个人配置记录

    idea.properties # Use ${idea.home.path} macro to specify location relative to IDE installation home. ...

  9. VS2013下搭建SDL开发环境

    什么是SDL? SDL是 "Simple DirectMedia Layer"的缩写,它是一个开源的项目. 为多媒体编程而设计 SDL是一个跨平台的多媒体库,它通过OpenGL和2 ...

  10. wordpress 如何防止盗链

    盗链是指其它站点使用了你自己网站的图片音乐等资源,然后链接又没有更换,直接显示的就是你站点的图片,这在转载文章时最常见,比如转载时将 整篇文章都转载过去,包括文章里面的图片,有些人就懒得把图片再重新上 ...