代码编织梦想

0.前言

最开始写过利用夜神模拟器结合appium,做APP自动化测试
1.python–安卓APP自动化测试环境搭建(Appium+夜神模拟器)
这是win10实现的,电脑总不能一直开着,想到能不能在树莓派上跑一下,弄了很久也没安装成功安卓模拟器,退而求其次现在用旧手机作为安卓终端,直接控制实现。

1.实验目的

自动化实现【什么值得买】APP自动打卡功能,并截图发送到微信,及时检查打卡是否成功。

2.实验方法

树莓派连接安卓手机,adb代码控制打卡截图,上传【巴法云】推送到微信。

  • 连接手机
    安卓手机通过数据线连接树莓派后,打开手机USB调试,找到【开发者选项】-【指针位置】
    ,打开之后能够看到当前按压位置的准确坐标,记录下来作为输入密码用。在这里插入图片描述

  • 解锁手机
    直接用adb的命令可以模拟触摸操作,很多功能也有现成的。
    【 需要点亮屏幕,上划进入解锁界面,输入密码】
    在这里隐去部分解锁密码,测试好每个数字精确位置,如下代码,首先adb keyevent26是作为开启电源键;滑动屏幕需要adb swipe从一个位置到另一个位置;输入密码需要adb tap 数字位置。

def mobile_in(code):
    #   开启电源键
    os.popen('adb shell input keyevent 26')
    time.sleep(1)
    #   滑动屏幕进入输入密码界面
    os.popen('adb shell input swipe 800 1800 800 1000')
    time.sleep(1)
    for i in range(len(code)):
        if code[i] == '9':
            os.popen('adb shell input tap 820 1600')
            time.sleep(0.5)
        elif code[i] == '6':
            os.popen('adb shell input tap 850 1400')
            time.sleep(0.5)
  • APP打卡
    首先确定APP包的具体名称【com.smzdm.client.android/.app.HomeActivity】
    可以通过以下命令行查看。
adb shell pm list package

打开APP后,需要找到打卡位置坐标进行tap,完成打卡。
在这里思路和python–安卓APP自动化测试环境搭建(Appium+夜神模拟器),不太一样,之前可以通过关键字进行定位,在这里为了方便还是通过坐标进行定位,注意如果有APP更新或者其他弹窗提示,需要进一步对应进行优化。

def check():
    time.sleep(3)
    os.system('adb shell am start -n com.smzdm.client.android/.app.HomeActivity')
    time.sleep(5)
    os.system('adb shell input tap 950 2200')
    time.sleep(5)
    os.system('adb shell input tap 880 310')
    time.sleep(5)
    os.system('adb shell am force-stop com.smzdm.client.android')
  • 截图上传
    截图上传这个想法,是整体功能做好了以后突然想到的,参照之前ESP32cam拍照上传,所以可以截图上传,推送到微信,对打卡情况进行检查。
    ESP32cam拍照上传参考:
    2.【好奇心驱动力】ESP32-CAM人体感应拍照并推送到微信
    【巴法云】官方示例都是基于ESP32的,需要考虑上传数据具体格式,通过查看接入文档,能够找到图片HTTP POST要求,消息体是图片二进制格式。
    在这里插入图片描述
    对应对构造POST内容。
    截图保存到树莓派,直接通过adb screencap,开始以为截图会保存一份到手机,后面发现只存一份到代码同一目录下。
def screencap():
    os.system("adb shell screencap -p /sdcard/a.png")
    os.system("adb pull /sdcard/a.png .")
    load()
    
def upload():
    data = open("a.png","rb").read()
    headers = {"Content-Type":"image/jpg","Authorization":uid,"Authtopic":topic,"Wechatmsg":wechatMsg}
    rep = requests.post(url=post_url,data=data,headers=headers)
    print (rep)
  • 定时启动
    定时启动暂时用的是python schedule库,没有用树莓派sudo crontab -e,这个后续运行一段时间再进行调整,主要是懒得再写日志了。
schedule.every().day.at("20:49").do(main)
while True:
    schedule.run_pending()
    time.sleep(1)

3.实验结果

【解锁手机】
在这里插入图片描述
【APP打卡】

在这里插入图片描述
【截图上传】
代码运行结果
在这里插入图片描述

微信提醒
在这里插入图片描述
打卡记录
在这里插入图片描述

4.后续问题

最好能够在树莓派上安装安卓模拟器,这样能够省去连接手机。
代码运行改为计划任务比较好。
【源代码】
https://download.csdn.net/download/m0_46622606/50678738

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_46622606/article/details/121584520

使用jmeter实现多用户功能测试 - 完成手动测试无法完成的工作-爱代码爱编程

项目背景 本项目是一个抽奖活动,用户通过参加活动获得奖券,然后刮开奖券,刮开奖券的时候查询奖券是否中奖。使用手工测试去完成这个测试,需要测试人员手动产生一张奖券,然后刮开奖券,最后看在刮到多少张奖券中奖的时候来判定中奖概率

android app自动化测试框架appium资料整理-爱代码爱编程

by Ruiming.Lv 1   自动化测试 1.1    自动化测试简介 自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。从广义上来讲,一切通过工具(程序)的方式来代替或辅助手工测试的行为都可以看做自动化测试。从狭义上来讲,自动化测试就是通过工具记录或编写脚本的方式模拟手工测试的过程,通过回放或运行脚本来执行测试用例,从

app自动化测试实战之appium介绍和环境准备_shannonnnn的博客-爱代码爱编程_移动应用自动化测试需要使用android-sdk中哪些工具

0X00 Appium 介绍 Appium 是一个自动化测试开源工具,支持 iOS 平台和 Android 平台上的原生应用,web 应用和混合应用。 (1)“移动原生应用”是指那些用 iOS 或者 Android SDK

app自动化测试之(一) --------appium自动化测试_探岳精神的博客-爱代码爱编程_app自动化测试

跟着逻辑走。 第一章    App自动化框架选择  目前较火的自动化工具特点对比: Appium(适用于Android&iOS;支持多语言;不需要应用源码)Uiautomator(适用于Android;仅Java语言;不需要应用源码)Robotium(适用于Android;仅Java语言;不需要应用源码)Calabash(适用于Andro

app自动化测试方案_fin_123的博客-爱代码爱编程

App自动化测试方案 1.1  概述 什么是App自动化?为什么要做App自动化? App自动化是指给 Android或iOS上的软件应用程序做的自动化测试。 手工测试和自动化测试的对比如下: 手工测试优势:不可替代、发现更多bug、包含了人的想象力与理解力。                   注意,不是所有功能都需要自动化。 自动化

APP自动化测试(一)-appium-爱代码爱编程

一:APP自动化测试框架比较 跨应用:比如在测试抖音的同时还想测试微信 Hybrid:混合应用程序     二:Appium自动化测试框架 官网:http://appium.io/ 优点: 1:跨架构、支持原生、混合以及web移动应用 2:跨平台,Android&IOS 3:跨语言,Java、Python、Ruby  

高吞吐量Flume Agent调优小结-爱代码爱编程

前言 所有电商企业在一年一度的双11都要迎来大促与大考,我司也不例外(所以最近真是前所未有的忙乱)。前段时间在配合执行全链路压测的过程中,发现平时不太关注的Flume配置可能存在瓶颈。Flume在笔者负责的实时计算平台里用于收集所有后端访问日志和埋点日志,其效率和稳定性比较重要。除了及时扩容之外,也有必要对Flume进行调优。今天在百忙之中挤出一点时间

java多用户并发_JMeter java模拟多用户高并发请求测试(json,form表单)-爱代码爱编程

1.情景展示 在实际开发过程中,需要进行测试的时候,往往需要进行压力测试,或者高并发情况下,同时对一张表数据进行修改、读取操作,程序会不会出现多个用户取出的数据一致,或者修改次数与实际请求数不一致等问题。 2.分析 如果在项目中写多线程模拟并发请求,并不是很好,还需要自己写代码,来回修修改改; 有一个工具就可以很好的模拟出高并发请求,供我们直接

某中学考勤项目测试方法-爱代码爱编程

1、主要模块大致功能 系统资源 设备管理:负责设备的增删改查,设置设备进出方向,设置设备位置为进出校,出/归寝 人员管理:负责添加学生管理,学生的增删改查,批量导入导出等功能,设置学生是住校,还是走读; 账号管理:负责账号的增删改查,账号绑定不同权限,开启停用账号 参数设置:设置进出校、出寝、归寝的时间设置(目前只实现了一

5分钟带你玩转App自动化测试-爱代码爱编程

前言 这篇博客,我会站在小微团队的角度,介绍一下我对App自动化测试的一些看法。在帮助你降低对App自动化测试的期望的同时说服你开始实践App自动化测试。 App自动化测试一直是小微团队很少会去涉足的领域,在互联网快速迭代这个大场景下,随着业务发展,回归压力逐渐增大。相信每次因为回归覆盖不足而导致线上事故,懊恼郁闷到要砸桌子的绝对不止我一个。 一般情

自动化测试之APP测试-实战篇-爱代码爱编程

自动化测试之APP测试-实战 一、安装Appium二、配置Appium三、常用元素定位方法四、PO框架 一、安装Appium 本项目使用的APP是钓鱼人,在模拟器中实现自动登录操作。 配置好基础篇的环境后,安装python和pycharm,并安装插件appium-python-client,安装方法:pip install Appium-p

小打卡软件测试,考勤打卡软件大测评,这款打卡软件你有在用吗?-爱代码爱编程

原标题:考勤打卡软件大测评,这款打卡软件你有在用吗? 考勤打卡是上班族开始和结束一天工作的标志,也记录了自己的工作时间,与工作情况、薪资结算等息息相关,随着时间的推移和科学技术的发展,相信大家都经历过纸质打卡、指纹机打卡、人脸识别打卡, 手机软件打卡等,打卡方式的变化层出不穷。智能考勤软件的发展让我们的手机都变成了一部移动的智能打卡机。 现在市