精华内容
下载资源
问答
  • 2022-03-14 18:27:09

    测试相同点:都是需要按照需求来进行测试

           测试流程是一样的:制定测试计划,设计测试方案,编写测试用例(每一个环节需要进行评审),执行用例
    
           测试的方法是一样的:每个软件都可以手工测试,都可以实现自动化测试;都可以进行白盒测试,也可以进行黑盒测试,还有灰盒测试...
    
           测试分析和设计的方法是一样的:测试分析指的是如何提取测试项:质量模型分析法(单个功能的测试)
                                                                       功能交互分析法(功能和功能之间集成)
                                                                       用户场景分析法 (全业务流程测试)
                                        测试设计方法指的是设计用例的(11种设计方法):等价类、边界值
    
           测试的管理工具:都会使用缺陷管理工具、测试用例管理工具
    

    测试不同点:细节上不一样

                 性能测试 :web 系统:侧重于多用户使用情况下的性能表现 ,比如 淘宝双11、全运会
                           
                            word 系统:关注打开或者保存一个大的文档时的时间,使用word的时候对资源(cpu)消耗情况
    
                 安全性测试:web 系统 :关注来自网络的攻击,信息安全,比如超市的用户数据,收银系统被黑客攻击,盗取,拿去卖钱
    
                             word 系统:不需要太多关注网络攻击,但是提供了加密功能
    

    app 和 小程序 的对比:

    ------------------------------------ web 测试 ---------------------------------------

    简单来说:WEB 测试适用于所有基于web网站的测试,是浏览器通过 url 来实现网站的功能

    测试点:功能测试、性能测试、用户界面 GUI 测试、兼容性测试、接口测试 、安全测试 等等

    功能测试:

    1、 超链接测试    
           
          1)测试是个超链接
             如果不是,直接提bug,问题:检查标签名和属性名
    
          2)测试超链接能够正常打开,不要出现 404等错误
             常见问题代码:404,500
    
         3)测试超链接的入口和目的地址是否一致,即超链接跳转到的目的地是正确的
    
         4)测试超链接的入口情况:如果是文本入口:文本要简短,精炼,正确没有错别字和歧义
    
                                  如果是图片:图片能够正常显示,图片要形象
    
                                  如果实在是找不到具体形象的图片,最好建议加上 tips
    
          测试超链接可以利用测试工具:xenu 工具等
     
    2、表单测试
    
         表单主要是用来整体提交数据的,post 方法,如果有好几个数据一起提交,就可以放在一个表单中
    
         1)测试正常提交表单,测试基本功能:合法的输入(优先级最高)
         2)测试表单的校验:测试单字段校验:必填项 (是否为空);长度(文本的长度,边界值);格式(日期的格式,邮箱的格式,密码格式);内容(非法的,比如要求数字,填非数字)
                            测试对字段联合校验:字段之间有关联,测试关联性,联动反应(比如:身份证号和出生日期;酒店的软件到店,离店日期)
                           
                            测试多值输入字段(重点关注分隔符):比如入住人,如果是多人,如何分隔,最好给出明确的分隔符提示,或者是换行添加功能
    
                            测试表单的入口和出口
    
                            测试字段取值方式的合理性
                       
                            测试字段顺序的合理性
                         
                            测试字段存在的价值:有一些字段无意义,意义不大,不建议出现
        3)GUI用户界面测试 :测试界面上的信息显示是否正确;
                             测试界面的整体布局是否合理美观;
                             测试界面的默认值;
                             测试放大缩小页面,页面还能否正常显示
    
        4)文件上传测试:测试上传文件的类型(允许的类型)、大小、个数;
                         测试重复上传、同名文件上传;
                         测试上传文件后能够查看文件;
                         测试上传时已选中文件,准备上传,删除该文件;
                         测试文件上传以后,再删除原文件,看系统是否有异常;
                         测试上传的进度:文件大的话,需要有进度条
                         测试上传的过程中取消操作;
                         测试文件删除只有,建议直接存储在磁盘上,并且要被重命名存储,防止发生冲突,数据库中只记录文件的基本信息;
    
        5)cookies 测试:查看是否有敏感信息
    
                         需求:阻止所有cookie 写入,软件cookie 中不能有信息
                         需求:允许一部分cookie 写入,阻止一部分写入 ,软件cookie中的信息是否符合需求
                         需求:测试 cookie 的加密
    
                         测试cookie的过期时间:建议不要超过半年
        6)Session 测试 :测试 session 的过期时间
    
        7)测试设计开发语言(不是重点):
    
        8)数据库测试:不是指去测试数据,而是在测试过程中用到数据库
                        
                       测试点:测试前台页面的数据是否和数据库中存储的数据一致
    

    易用性测试(在测试功能的时候就可以一并测试)

    易用性主要是用来关注有用户的感受,提升用户的感受
    
    先分析用户:年龄(儿童、青少年、老人、中年人)
                地域(中国、外国:使用习惯,比如日期习惯)
                类型(技术类(系统风格科技蓝)、环保类(绿色主题)、金融类
    
    怎么提升:界面上,外观上,要吸引人想去用
              从操作上,跟加简单
              从提示上,简单明了亲切
    

    性能测试:web 系统关注多用户使用情况,需要借助性能测试工具来完成(LR、jmeter)

         关注重点:客户端的响应时间要快(2、5、8 参考)
                   
                   服务器端:资源的使用情况
    

    整体用户界面测试:GUI 测试 排版、布局、颜色、字体等等

    兼容性测试:客户端兼容性 : 测试在不同浏览器上都能正常访问(谷歌、火狐、IE)
    重点要兼容的就是:浏览器不同类型、不同版本
    还需要测试在不同的操作系统上兼容不同的浏览器

           服务器端的兼容性:服务器端的兼容性测试主要是指同一个软件需要测试不同的web服务器版本。
                             连接不同的数据库,或者使用不同的网络环境看看是否能够正常工作。
    

    安全测试:没有完全的安全的测试,道高一尺魔高一丈
    安全测试需要用到编程技术,数据库技术,网络技术,信息安全技术等等
    1)测试认证和授权 也属于功能测试
    认证:只有合法的注册过的用户才能登录使用系统,非法的不让用

                             怎么认证更安全:认证方式:用户名、密码、验证码(图形、输入、短信)
    
                                             密码强度的策略
                                         
                                            适可而止,多则困扰,少则不安全
                             授权:权限控制   :不同级别的权限控制
                                                对不同的用户进行授权
                                                对不同的功能模块进行授权
    
                             通过登录和权限的控制来增加系统安全
                             
                             细节注意:登录失败,系统提示用户名或者密码错误
                                       未登录,直接输入登录后的页面地址,必须要重新登录
                                       连续多次登录失败,锁定用户账号
    
           2)文件上传漏洞   测试可执行文件或者脚本文件不让上传
                             测试不能只根据后缀名来判断文件的上传类型
                             测试上传的文件要有最大最小的限制,否则很容易把硬盘系统塞满
                             限制同一个IP地址不能连续多次上传文件,很有可能是恶意上传攻击
    
           3)攻击   SQL注入  在页面上输入一些特殊的信息,来改变代码中SQL的执行
                              特殊的信息一般放在第一个输入框
                              特殊的信息:比如 单引号 '(跟前面的单引号配对) ,# mysql的注释符 ,但是输入到 oracle 数据库中 ,oracle中注释 --
                     
                     DDOS 拒绝服务攻击:指的是利用合理的服务请求来占用过多的服务器资源,从而使服务器无法正常处理合法用户的请求,甚至直接导致服务器崩溃。
                            
                                        写代码或者网络协议
    
                     XSS跨站点脚本攻击:指的是往页面中插入恶意的HTML或者javascript 代码,当用户浏览网页的时候,嵌入的代码就会被执行
    

    接口测试(专项测试):集成测试阶段测试最合适,系统测试阶段也可以测试。

    ----------------------------------------------- APP 测试 -------------------------------------

    web 系统 和app 软件的对比:web 系统:淘宝网站
    app :微信

    相同点:都是软件,和其他软件的相同点一样

    不同点:架构模式不一样,测试重点不一样

    有哪些不同?

    安装测试 app有安装、升级测试、有卸载
    web 系统客户端使用的是浏览器,不需要安装

    功能测试 正常的功能实现以外,app需要额外考虑和手机的交互性测试(比如:看视频,听歌,来电话了…视频音乐暂停了,挂了电话,恢复)
    还有一些特殊模式:分屏模式,单手模式

    GUI用户界面测试 app考虑横屏,竖屏模式,是否显示正常,投屏模式,触屏滑动等等

    兼容性测试:app 兼容:不同的手机,不同手机品牌,同一品牌不同型号;手机的操作系统

    性能测试:app 耗电量,流量,内存,cpu, 温度;多用户使用

    APP测试最重要的几个测试点:

    1、功能方面目前市场上没有达到自动化水平,主要是手工测试。出现问题最多的就是:特殊符号、边界值、按钮之类。
    2、兼容性方面考虑手机的版本、型号、分辨率。不同版本是否在差异,一般低版本问题比较多。
    3、稳定性方面主要考虑:闪退、系统崩溃、没有响应等之类。
    4、易用性:界面吸引人,容易理解,操作简单,无错别字等等。
    5、性能测试关注的重点CPU占用,内存占用,电池温度。(依靠工具来实现)
    6、安装、卸载、升级必须要测试

    APP专项测试
    1、APP测试的准备
    确定APP的设备(品牌、型号、尺寸、屏幕分辨率)
    确定APP的版本及操作系统类型(iOS和Android)
    用表格记录APP的设备和版本
    2、网络测试:2G,3G,4G,Wifi,移动,联通,电信,弱网,强网
    不同网络下能正常工作,网络中断,连接,切换
    3、多任务处理,切换及意外情况处理
    正常打开被测APP
    运行APP的功能
    突然被其他应用打断(意外,短信、电话、通知)
    切换到该应用、或者、忽略该应用
    被测APP能够继续之前的操作,不发生退出或者系统崩溃
    4、手势 (长按屏幕,上下、左右滑动,双手指捏合、放大放小)
    5、消息通知及显示
    6、使用高内存的处理 (App对于读取大量图片、视频等进行高内存占用操作的处理能力)
    7、支持的文件格式
    8、APP的用户体验(横屏,字体大小设置以及美观,遵循iOS和Android的设计规范)
    9、APP响应不同的设备用户界面
    10、APP的消息显示和通知显示 (锁屏的通知,下拉通知栏的通知,应用程序消息栏)
    11、APP能否及时显示和同步数据(Web端 + PC端 + APP端 同步消息及数据)
    12、安装、升级及卸载测试
    13、安装之后的最大权限最小权限获取能否正常使用app(或给出友好提示而不是白屏)
    13、操作系统升级之后能否访问APP
    14、应用召唤
    15、多台设备登录
    16、交互测试:验证APP与系统事件交互式的运行表现

    注意:升级以后,能够访问APP,特别关注历史数据的校验

    ------------------------------------- 微信小程序的测试 ------------------------------------

    简单来讲:小程序不用安装就能使用;它的体积也非常小,每一个都不超过1M。

    微信小程序:优点 方便,免安装,释放手机内存,桌面整洁,需要的时候再用;
    缺点:依赖微信
    不是所有的用户需求都可以满足:比如游戏类
    推送消息有限制

    微信小程序特殊测试点

    1、小程序包大小不能超过3M,开发版对大小没有限制,但是体验版和正式版都有限制。
    2、页面层级跳转不能超过10次,比如分类-》居家-》布艺软装-》居家-》被枕-》居家-》。。。达到10次就无法跳转了,如果非要有这种跳转方式,需要考虑不让微信觉得是10次跳转。
    3、缓存,微信小程序为了提升用户体验,会缓存用户的页面及数据,方便下次调用时直接使用。可能产生的问题:
    (1)微信小程序缓存的数据是否和服务器端一致。实际测试时可以先访问页面,然后修改服务器上数据,再回看小程序中页面,看数据是否一致。
    (2)切换相似的页面,看是否缓存的数据会产生混乱,比如居家和餐厨两个分类,切换分类的时候,会不会因为缓存导致具体信息不发生变化。

    更多相关内容
  • 初探微信小程序渗透测试

    千次阅读 2022-03-18 09:36:54
    初探微信小程序渗透测试

    一、前言

    日常做web或者工控相关的渗透测试,偶然的机会接了个微信小程序的项目,研究了一下

    二、初探

    我是将微信装在了模拟器上,不需要模拟器也可以,方法有很多

    不需要模拟器可直接设代理 burpsuite 抓包

    我使用的是夜神模拟器配合 burpsuite 进行抓包,我的夜神模拟器内设系统Android 5.0的版本,版本老的话易于兼容,新的版本都是7.0以上,抓取 HTTPS 包需要配置一些东西,很麻烦,大家可以按照我的版本搭建。

    接下来开始配置抓包环境

    ipconfig查看一下我们本机的ip
    在这里插入图片描述
    在burpsuite添加上代理,端口可随意设置,无要求
    在这里插入图片描述
    打开夜神模拟器,在 WLAN 选择手动代理,并设置代理地址和代理端口,与 burpsuite 的设置对应
    在这里插入图片描述

    保存后,打开浏览器访问ip:port,我这里是192.168.201.96:8888,点击CA Certificate下载证书
    在这里插入图片描述
    由于我这边之前安装好了,详细说一下操作步骤吧
    下载好证书后,打开文件管理器,在sdcard->Download目录中可以看到下载下来的证书
    在这里插入图片描述
    将cacert.der更名为cacert.cer,也就是将后缀改成cer,然后到手机设置->安全中,选择从 SD 卡安装
    在这里插入图片描述
    在这里插入图片描述
    安装好了后,打开浏览器访问百度看看,burpsutie能抓包就说明环境配置成功了

    反编译微信小程序代码包

    在模拟器登录上微信,访问一个小程序,等到小程序全部加载完了后,就可以在模拟器中找到一个文件夹,里面便存放着小程序的代码包

    打开文件管理器,在data/data/com.tencent.mm/MicroMsg会生成一个md5加密命名的文件夹(如果同时有多个文件夹不容易识别的情况,可以选择把MicroMsg文件夹所有内容删除掉,再去重新打开微信小程序,就会得到唯一一个MD5加密命名的文件夹啦,其实看一下文件创建时间就能知道是哪个了)
    在这里插入图片描述
    在该文件夹下的appbrand/pkg目录下找到.wxapkg后缀结尾的文件,其中只有几MB大小的就是刚刚打开的小程序的代码包了
    在这里插入图片描述
    点击勾选之后,来到根目录下的mnt/shared/App目录,打开右上角三个.的功能菜单选择粘贴选择项,将文件复制到该文件夹
    在这里插入图片描述
    在这里插入图片描述
    这个文件夹是与你电脑本机的共享文件夹,点开电脑文件夹,打开文件夹“AppShare”,就能查看到这个代码包了
    在这里插入图片描述
    在这里插入图片描述
    接下来将这个文件进行反编译得到源码

    1、需要配置Nodejs环境(下载地址:https://nodejs.org/zh-cn/download)
    2、下载反编译工具(下载地址:https://wwi.lanzouq.com/i4CM8zr395e)
    3、大多数的小程序代码包会有加密,附上一个解码工具(下载地址:https://wwi.lanzouq.com/iPqZbzr3a2h)

    简单讲一下配置nodejs环境:
    根据自己电脑系统及位数选择,我这里选择windows64位.msi格式安装包,因为不想再配环境变量了,安装的时候默认自己配了
    在这里插入图片描述
    .msi.zip格式区别:

    .msi是Windows installer开发出来的程序安装文件,它可以让你安装,修改,卸载你所安装的程序。说白了.msi就是Windows installer的数据包,把所有和安装文件相关的内容封装在一个包里。
    .zip是一个压缩包,解压之后即可,不需要安装

    安装完成后,.msi格式的安装包已经将node.exe添加到系统环境变量path中,如果你下载的是.zip格式,因为没有安装过程,所以需要手动将node.exe所在目录添加到环境变量path中,查看系统变量验证
    在这里插入图片描述
    安装好后验证一下,打开CMD窗口输入node -v查看版本
    在这里插入图片描述
    接下来安装脚本运行环境,依次输入下列命令

    npm install esprima -g
    npm install css-tree -g
    npm install cssbeautify -g
    npm install vm2 -g
    npm install uglify-es -g
    npm install js-beautify -g
    npm install escodegen -g
    

    在这里插入图片描述
    全部安装好了后,下面开始正式反编译了!
    1、首先将之前获取的代码包解密,利用解密工具,很幸运的是,我访问的这个小程序代码包未加密
    在这里插入图片描述
    2、将下载好的反编译工具wxappUnpacker解压,打开文件夹,在该文件夹打开cmd
    在这里插入图片描述
    3、输入命令node wuWxapkg.js 代码包所在位置,回车即可开始反编译
    在这里插入图片描述
    在这里插入图片描述
    结束后就可在代码包的位置出现一个同名的文件夹,该文件夹就是反编译成功的源码包啦
    在这里插入图片描述
    源码包拿到后,就可以很舒服的看js代码了
    在这里插入图片描述首先挨个js文件点开看,js编程很灵活,招架不住文件太多了,直接上工具!
    代码审计工具大家应该都用过,我这里推荐我用的审计工具Fortify SCA ,审计速度快但误报不少,还算好用,界面简单明了
    这里发现有很多地方存在硬编码加密密钥漏洞,任何有权访问代码的人都可以访问加密密钥。应用程序发布后,除非对程序进行修补,否则无法更改加密密钥。有权访问此信息的员工可以使用此信息闯入系统。如果攻击者可以访问应用程序的可执行文件,他们可以提取加密密钥值。危害还是很大的。
    在这里插入图片描述
    收获不多,但初探过程很有意思,大家可以试一试

    三、下面附上某社区的文章,同样是对微信小程序的,比较详细的审计及漏洞验证方法,供大家学习

    其他类型漏洞案例
    下面举例其他类型的漏洞审计案例,这里目的是为了说明小程序有哪些漏洞可以挖

    信息泄露

    反编译出来的源码泄露登录账号密码,这里是因为在 js 文件中写死了账号密码,只做了前端验证导致的漏洞,从下面贴的两个小程序源码中可以看到
    图片

    图片
    在时间稍稍往前的小程序中,还经常会有泄露小程序secret的情况,简直就是把打开保险箱的密码放在你面前

    未授权接口

    仔细翻找 js 文件能找到不少未鉴权的 api 接口(可以着重注意配置文件,不少配置文件都会写上路由列表),例如该 api 返回大量用户敏感信息
    图片
    测试未授权时,有一些小技巧:例如当在 GET 或者 POST 传参中有token等鉴权参数,例如

    GET /api/GetUserInfo?id=xxx&token=xxxx HTTP/1.1
    

    可以尝试将token参数的值置空或者删除token参数,往往能 bypass 鉴权,我已经遇见好多次这种情况了。举例一个案例:
    该微信小程序可以注册用户,注册账号登录之后抓包,我的账号数据包如下

    GET /wx/queryOrders?orderState=&serviceUid=&repairUid=6864&pageNum=1&pageSize=20&uid=6864&token=9938C366-XXXX-XXXX-XXXX-9C7709D8C9E8
    

    当我尝试将uid参数改成其他用户时,返回权限不足,尝试将token删除

    GET /wx/queryOrders?orderState=&serviceUid=&pageNum=1&pageSize=200&uid=2000
    

    图片
    除此之外,测试一些参数,比如手机号,不知道该系统用户手机号时,可以试试像上面说的将其置空,往往运气好能碰上系统后端查询使用的模糊查询为空时返回所有信息,下面贴图的案例就是将手机号参数置空后,成功获取到账号详细信息
    图片

    越权漏洞

    下面案例举例一个通过 Cookie 中的参数进行鉴权的漏洞,可以通过修改NetId中的值来遍历获取用户信息。此类漏洞的挖掘在鉴权处的源码,审计时可以着重审计其验证流程
    图片

    当时也是依靠这个漏洞获取到 VPN 账号密码,得以进入内网渗透

    逻辑漏洞

    使用 burpsuite 抓取管理员登录数据包,获取返回包
    图片

    该处在login.js文件登录判断条件中,源码判断返回为 0 时登录成功,所以我们将返回包从 1 改成 0 即可登录成功。
    图片

    还有 任意密码重置 ,该处漏洞倒也是在黑盒中无意发现,在修改密码处需要验证对应账号接收到的短信验证码。但怀着尝试的心态通过 buspsuite 抓包绕过 js 限制,随意填写验证码便可以重置任意用户密码,不细心就会很容易忽视的点
    图片

    appid和secret的利用

    当时测试数据的时候,发现添加字符%%会导致其后端报错,返回appid和secret

    图片
    获取到的appid和secret可以到微信的官方接口去自由生成微信小程序的命脉AccessToken
    图片

    拿到 AccessToken,相当于可以控制整个小程序了,并且 AccessToken 微信每天只能生成20次,不断请求满20次的话可以使小程序崩溃无法使用。
    在这里插入图片描述

    写到最后

    个人感觉,微信小程序的渗透我觉得最重要的还是仔细审计一下反编译得到的源码,源码里才都是宝贝

    展开全文
  • 微信小程序渗透测试技巧

    千次阅读 2021-07-20 00:18:28
    随着小程序数量的爆发式增长,其特有的安全风险也逐步凸显出来。本文基于微信小程序测试过程中的解包及抓包的技巧,总结下微信小程序安全测试的思路。1、小程序解包(反编译)(1)安装手机模拟器,比...

    随着小程序数量的爆发式增长,其特有的安全风险也逐步凸显出来。本文基于微信小程序测试过程中的解包及抓包的技巧,总结下微信小程序安全测试的思路。


    1、小程序解包(反编译)

    (1)安装手机模拟器,比如说夜神、MuMu

    (2)下载和安装两个应用,微信和RE文件管理器

    (3)获取root权限

    (4)打开微信,搜索相对应的小程序,然后再打开RE文件管理器,定位到目录:

    (5)下载微信小程序反编译脚本,解包。

    https://github.com/xuedingmiaojun/wxappUnpacker.git
    

    解主包:

    ./bingo.sh 主包.wxapkg
    
    

    解分包:

    ./bingo.sh 分包.wxapkg -s=主包目录
    
    

    合并分包内容,成功获取小程序前端源码。

    基于小程序的前端源码,我们可以从JS敏感信息泄露、隐藏接口漏洞等方向进行漏洞挖掘。

    2、小程序抓包

    抓取数据包是小程序安全测试中最关键的一步。抓包的方式有多种,比如使用Android内核版本7.0以下的模拟器,通过XPosed+JustTrustMe抓包;使用微信版本7.0以下通过Burp CA抓包。

    这里分享一个比较简单的方法,使用Charles进行小程序抓包。

    (1)环境准备

    本机电脑开启Wifi共享,将自己手机和电脑连上同一个wifi。

    (2)Charles设置:

    下载地址:

    https://www.charlesproxy.com/download/
    

    第一步:配置HTTP代理,设置代理:主界面—Proxy—Proxy Settings

    选择在8888端口上监听,然后确定。勾选了SOCKS proxy,还能截获到浏览器的http访问请求。

    第二步:配置SSL代理:首先在charles的 Proxy选项选择SSL Proxy Settings

    第三步:为手机设置代理

    在手机接入电脑wifi,配置手动代理,输入安装Charles的电脑的网络地址,端口填8888。以IOS为例,在Safri上打开Charles的根证书下载网址: chls.pro/ssl ,点击允许,开始下载。

    第四步:SSL 代理设置,在Proxy-SSL Proxying Settings,添加域名

    到这里完成设置,通过手机访问就可以看到获取到小程序的数据包。

    基于小程序的数据包,我们可以看到前后端业务交互的过程,重点关注业务逻辑漏洞、API 接口可能存在的安全漏洞。

    展开全文
  • 因公司业务需要支付宝小程序的UI自动化测试,于是在网上查找小程序的自动化资料,发现微信小程序是有自己的测试框架的,但几乎找不到支付宝小程序UI自动化测试相关的资料。白piao失败,那就只能自己从零开始整了。...

    点击关注,我们共同每天进步一点点!

    目录

    一,前言

    1 背景

    2 Airtest Project简介

    3,环境

    二,安装poco

    四,使用pytest框架,修改脚本,调试运行

    五,总结


    一,前言

    1 背景

    因公司业务需要做支付宝小程序的UI自动化测试,于是在网上查找小程序的自动化资料,发现微信小程序是有自己的测试框架的,但几乎找不到支付宝小程序UI自动化测试相关的资料。白piao失败,那就只能自己从零开始整了。

    因为之前已经用 Python + appium + unittest 搭建好了android app的UI自动化测试,于是刚开始就想直接套用这个框架,当时认为小程序页面就其实就是相当于一个特殊的web页面,觉得应该可行。但有天脑子一热想尝试使用网易的airtest与单元测试框架pytest结合。为了验证可行性,开始查看Airtest官方文档,并在Airtest Project官网下载了AirtestIDE(AirtestIDE官方文档),尝试着编写测试用例demo。

    2 Airtest Project简介

    Airtest Project主要包含 Airtest 和 Poco 两个测试框架:

    • Airtest框架,是一个跨平台的、基于图像识别的UI自动化测试框架,适用于游戏和App,支持平台有Windows、Android和iOS

    • Poco框架,是一款基于UI控件识别的自动化测试框架,目前支持Unity3D/cocos2dx-*/Android原生app/iOS原生app/微信小程序,也可以在其他引擎中自行接入poco-sdk来使用,用appium做UI测试的同学应该比较容易上手。

    3,环境

    这里选择 poco + pytest,Windows 10,测试机操作系统为Android 10

    二,安装poco

    AirtestIDE后续只用于生成操作步骤代码(定位及操作),用例的运行会使用Pycharm,因此Python环境需要安装pocoui第三方库

    # 安装命令,使用清华镜像
    pip install pocoui -i https://pypi.tuna.tsinghua.edu.cn/simple
    

    三,使用AirtestIDE的Poco辅助工具录制代码
    AirtestIDE连接手机,使用Poco辅助工具录制被测小程序操作步骤生成代码

    1,打开AirtestIDE,按照步骤:

    1.1,连接手机。打开手机开发者调试模式,连接电脑,此时AirtestIDE右侧会出现设备id,点击connect连接手机。

    1.2,选择新建.py。点击上图2处,选择.py 纯Python(纯文本),然后会弹窗需要设置路径参数,这里暂时可以只设置Save Path,其他默认即可。

    1.3,点击OK后,会在Save Path设置的路径里生成对应的.py文件,且生成初始化内容如下:

    其中auto_setup() api的参数可以查看Airtest官方接口文档。

    2,Poco辅助窗选择Android,点击2处Yes,我们会发现脚本里会新增Android相关的代码。

    选中Poco辅助窗的Poco auto recording按钮,将光标放在编辑器的15行,鼠标点击操作需要测试的小程序即可录制操作步骤。Poco辅助窗的这三个按钮大家可以参考官方文档说明,或者分别选中后鼠标点击被测APP界面就很快知道区别了。

    四,使用pytest框架,修改脚本,调试运行

    1,在AirtestIDE中调试代码

    小程序操作步骤录制如下,可以在AirtestIDE上面先调试运行,是否正确。

    代码如下:

    # -*- encoding=utf8 -*-
    __author__ = "xiaoqq"
    
    from airtest.core.api import *
    
    from poco.drivers.android.uiautomation import AndroidUiautomationPoco
    poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)
    from airtest.cli.parser import cli_setup
    
    if not cli_setup():
     auto_setup(__file__, logdir=True, devices=[
     "Android://127.0.0.1:5037/5EN0219305002521",
     ])
    
    
    # script content
    print("start...")
    poco(text="扫一扫").click()
    poco(text="相册").click()
    poco("com.alipay.mobile.beephoto:id/iv_photo").click()
    poco(text="大物洗").click()
    poco(text="选好了").click()
    poco(text="已关门").click()
    poco(text="余额").click()
    poco(text="去支付").click()
    poco(text="立即支付").click()
    
    
    # generate html report
    # from airtest.report.report import simple_report
    # simple_report(__file__, logpath=True)
    

    2,完善代码

    接下来就在Pychram里打开该.py文件,开始完善脚本。增加断言,并使用pytest管理、执行用例

    # -*- encoding=utf8 -*-
    __author__ = "xiaoqq"
    
    import pytest
    from airtest.core.api import *
    
    @pytest.fixture(scope='function', params=['Android://127.0.0.1:5037/64c83202'])
    def base_poco(request):
        '''
        构造新的poco,完成测试用例执行前、后的步骤
        @return: 返回新的poco对象
        '''
        from poco.drivers.android.uiautomation import AndroidUiautomationPoco
        connect_device(request.param)
        base_poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)
        base_poco.device.wake()
        start_app("com.eg.android.AlipayGphone")
        sleep(2)
        yield base_poco
        sleep(2)
        stop_app("com.eg.android.AlipayGphone")
        sleep(2)
    
    def test_wash_order(base_poco):
        print("start...")
        base_poco(text="扫一扫").click()
        base_poco(text="相册").click()
        base_poco("com.alipay.mobile.beephoto:id/iv_photo").click()
        base_poco(text="大物洗").click()
        base_poco(text="选好了").click()
        base_poco(text="已关门").click()
        base_poco(text="余额").click()
        base_poco(text="去支付").click()
        base_poco(text="立即支付").click()
        time.sleep(1)
        result_1 = base_poco(text="支付成功").exists()
        assert result_1 == True
        print("end...")
    
    if __name__ == '__main__':
        pytest.main()
    

    3,运行代码

    运行该模块,可以查看手机上的操作步骤,结果通过!

    简单的demo已经跑通,后续需要优化项目的目录结构,并加入截图、日志、测试报告模块,搭建成一个完整的自动化测试项目。

    五,总结

    • 相对来说appium太笨重了,而网易提供的AirtestIDE里的poco辅助工具可以将元素定位及操作可以直接生成为代码。

    • 在AirtestIDE中只能运行单个的脚本,无法批量的运行测试脚本和管理测试脚本,而利用Airtest提供的开源的API结合其他的python库使用,可以实现更复杂的代码逻辑。

    • poco框架看起来代码简洁程度比airtest更好,维护更方便,且airtest框架基于图像识别,实际运行工程中可能会受识别率的影响。但对于新手或者代码基础薄弱的测试同学而言,airtest更容易上手。


    • 好了 学习也就到此结束了 想了解更多相关知识请关注我吧!下面是小编想对读者大大们写的一封信哦! 记住要认真读哦!

       感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接免费拿走:
      ① 2000多本软件测试电子书(主流和经典的书籍应该都有了)
      ② 软件测试/自动化测试标准库资料(最全中文版)
      ③ 项目源码(四五十个有趣且经典的练手项目及源码)
      ④ Python编程语言、API接口自动化测试、web自动化测试、App自动化测试(适合小白      

       ⑤ Python学习路线图(告别不入流的学习) 
      上图的资料 在我的QQ技术交流群里(技术交流和资源共享,广告进来腿给你打断)
      可以自助拿走,群号768747503备注(csdn999)群里的免费资料都是笔者十多年测试生涯的精华。还有同行大神一起交流技术哦
         ————————————————
      「学习资料 笔记 工具 文档领取」

    • 图片

       扫描二维码,
      备注“csdn999”
      小姐姐邀你一起学习哦~~
      和志同道合的测试小伙伴一起讨论测试技术吧

         一定一定一定 要备注暗号:CSDN999
         ————————————————

    展开全文
  • 微信小程序怎么性能测试

    千次阅读 2021-01-07 20:51:25
    微信小程序作为手机端页面的种,相比传统的网站和应用来说存在比较特殊的地方: 开发者往往对程序了限制,只能通过微信客户端访问,登录需要openid 认证 通过微信的Oauth进行认证 这样往往会导致性能测试工具...
  • 微信小程序测试方法

    千次阅读 2021-09-12 17:56:17
    微信小程序的定义 依附于微信而无需再次下载安装的移动端应用程序 微信小程序的特点 无需下载,即用即走 功能丰富,清爽体验 流量大、易裂变 微信小程序的局限性 数量:每应用最大支持页面层级为10层 大小:小程序...
  • 智力测试情商测试小程序源码,这是一个考验智力,心理上面的一个测试游戏,支持多种测试方法。 比如有: 智商测试丨情商测试 | 性格测试丨爱情测试 | 抑郁症测试丨焦虑症测试 | 心理压力测试丨生活满意度测试,通过...
  • 如何测试微信小程序

    千次阅读 多人点赞 2020-04-14 20:23:08
    怎样测试小程序 功能测试 功能测试可以参考APP的测试方法 输入、输出:用户上传的材料、描述,登录时输入的用户名、密码等; 边界值测试:黑盒测试,确定测试域,对具体测试点进行等价类划分,确定上点、内点、离点...
  • 分享份软件测试项目实战(web+app+h5+小程序

    万次阅读 多人点赞 2021-10-22 15:46:55
    本次,谭叔再度出马,给大家找了一个非常适合练手的软件测试项目,此项目涵盖web端、app端、h5端、小程序端,可以说非常之全面。 缘起 在这之前,谭叔已经推出了九套实战教程。 但是,这些教程以web测试和接口测试...
  • 使用小程序自动化 SDK,直接执行以下命令: npmi miniprogram-automator --save-dev 使用 首先开启工具安全设置中的CLI/HTTP调用功能。 必须开启以上选项,否则 SDK 将无法正常启动工具自动化功能。 然后直接...
  • 如何测试一个微信小程序

    万次阅读 2019-03-14 09:51:15
    微信小程序测试的策略和注意事项 测试前准备(环境搭建) 1.前端页面 微信Web开发者工具安装、授权测试用的微信号可预览和调试小程序… 可参考此文: 微信Web开发者工具-下载、安装和使用图解 2.管理后台 配置...
  • 微信小程序该如何测试

    万次阅读 多人点赞 2020-08-26 17:21:53
    今天大湿给大家带来了小程序该如何测试。 全文共2115字,阅读需要13分钟 1.什么是小程序 英文名 Mini Program 是种不需要下载安装即可使用的应用,是内嵌在微信 APP 里面的款新形态软件。 它实现了应用“触手可...
  • 微信小程序测试注意事项

    千次阅读 2021-10-25 10:21:39
    小程序测试也可以主要分为4方面,即功能测试,兼容性测试,性能测试,后台接口测试。对于安全性测试由于小程序集成在微信客户端内,相比于传统的网页来说安全性能够更有保障。只要在后台接口测试上保证数据的...
  • 微信小程序上传 分享发测试

    千次阅读 2021-10-26 17:38:53
    1、找到小程序开发工具的右上角 有一个上传的按钮 2、点击按钮,修改补丁,主要备注好(方便同伴理解了解) 3、在微信公众平台扫码登录自己的账号 4、找到版本号,找自己上传的 5、自己上传的右边有一个按钮换成体验...
  • 软件测试人员必知H5/小程序测试

    千次阅读 多人点赞 2020-08-28 08:01:00
    最近接触了较多关于H5页面的测试,H5页面的测试除了业务逻辑功能测试外,其他部分的测试方法基本是可以通用的,在此对H5页面和小程序的一些通用测试方法进行总结分享给大家01H5相关测试H5...
  • 微信小程序测试方案总结

    万次阅读 多人点赞 2020-07-24 22:47:58
    通过对微信小程序特性和测试点进行总结,储备测试知识,提高测试效率。 小程序特性介绍 小程序测试工作过程监控与管理 常见问题&技巧 现状分析 接触小程序的项目相对较少 缺少小程序测试实战经验 对小程序...
  • 微信小程序测试

    万次阅读 多人点赞 2019-03-29 18:14:41
    微信小程序的限制 微信小程序测试点:权限测试、兼容性测试(操作系统兼容、微信版本兼容)、功能测试、易用性测试、性能测试。 注意:微信缓存
  • 做一个微信小程序的完整流程

    万次阅读 多人点赞 2018-09-07 01:13:36
    最近在帮朋友开发一个小程序,都说今年是小程序快速发展的一年,不懂技术的人,大部分零售店面都开始想做一个小程序帮助推广销售。虽然小程序技术门槛没那么高,但自己独立做一个小程序还是需要了解的内容比较多的...
  • 针对微信小程序的渗透测试

    万次阅读 2020-10-18 00:12:35
    深夜难眠,回想起今天waf上一大堆误报和寥寥无几的告警,甲方爸爸提供的两荤一素已经换成了白粥榨菜,农夫已经换成了怡宝,猪肉换成了榨菜,或许我们是时长一个月实习生的身份,已经彻底暴露了,明天不知道是不是...
  • 微信小程序测试

    千次阅读 2019-03-12 18:59:00
    微信Web开发者工具安装、授权测试用的微信号可预览和调试小程序... 可参考此文: 微信Web开发者工具-下载、安装和使用图解 2.管理后台 配置内网测试服务器环境,通过PC端Web站点管理小程序前端的输出内容,可从...
  • 小程序消息推送至公众号(服务号) 可以通过小程序openid推送到公众号(服务号),要求如下 小程序和公众号的主体需要保持一致 在公众号中需要关联小程序...小程序在提交审核之前有三次免费改名的机会,...
  • 微信小程序应该怎么测试

    万次阅读 2018-10-19 17:03:55
    1 小程序类型 程序分为三种版本类型:开发版,体验版,正式版。开发版和体验版无需审核,需要给微信号配置权限,通过扫小程序的二维码才能访问。正式版需要通过微信审核流程,也就是说,在开发阶段,产品还未成型...
  • 小程序测试方案初探

    千次阅读 2017-11-27 11:06:43
    从微信小程序发布这段时间,陆陆续续开发了不少小程序相关的项目,总结了一些通用性的组件,但是对于小程序如何做测试,依然是一头雾水,直到了不少的项目,积累的一些经验和开源库之后才理清如何做测试,下面将会...
  • 微信小程序测试方案

    千次阅读 2019-05-19 15:13:42
    一个view模块对应一个webview组件,小程序支持多个view存在,view模块通过微信jsbridge对象来跟后台通信。 小程序类型 小程序主要分为三个版本类型:开发版、体验版、正式版。开发板和体验版无需审核,需要给微信号...
  • 微信小程序测试,抓包,模拟
  • 如下图 右上角只有三按钮 但是却没有上传按钮 我们知道上传按钮是为了写好的小程序发布上线和上传体验版本的,没有那怎么办呢 没有上传 主要是因为在 详情 --> 基本信息 中的appid不正确 获取正确的appid ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,582,051
精华内容 632,820
关键字:

如何做一个测试小程序