• 分层测试重构之接口层 at 2016年03月05日

    也是互联网金融

  • #52 楼 @xuben 又仔细看了一遍,有 2 点非常赞同:1.做技术的不能华而不实,有影响力的人更应如此,很多同行的技术和认知没有达到一定高度,容易被误导;2.有技术实力的,能不用第三方工具的尽量不要用,能不用第三方插件的尽量不要用,主动权要掌握在自己手里。上面的问题愿意的话也请解答,谢谢

  • 分层测试重构之接口层 at 2016年03月04日

    #17 楼 @sigma 我用 webdriver 做 UI 自动化的经验是平均成功率 70%~80%,有时甚至更低,用 appium 也半斤八两。
    WEB 的 UI 测试用我上面的方法可以最大限度的取代 webdriver 的那些校验 UI 数据的和校验链接有效性的案例;
    APP 的 UI 测试,由于其页面骨架是客户端生成的,目前我还没有想到好的方案降低 appium 的案例占比,这对我来说是一个挑战。
    个人建议:UI 层面的自动化尽量简化

  • 这个原理工作中用的蛮多,实用性大,文章如果能对读者普及下实现原理更好

  • 分层测试重构之接口层 at 2016年03月04日

    #15 楼 @sigma 基于 http 协议的接口只是接口测试的一种。同样,基于 http 协议的测试也不仅限于接口测试,以 web 测试为例,展现给用户的页面是通过 http 请求从服务器得到的资源(和 APP 界面生成原理不一样),我们可以对其 response 的内容进行校验,这个和接口测试在本质上是一样的,还有一种场景是下载附件,如果要校验附件内容的正确性或一致性,我的分层框架也提供了支持,这个会在之后的 UI 层的 web 部分进一步强化。

  • easypoi

  • #52 楼 @xuben 请问,你们的 UI 自动化脚本,回归测试中的成功率是多少?

  • 用 poi 是下下策,有一万种方法实现,第三方插件、框架、自定义、数据库、xml、json,推荐 json

  • 分层测试重构之接口层 at 2016年03月04日

    做了些优化,去掉了硬编码,全面支持重载方法的所有场景的请求,包括对 web 页面和资源的请求

  • 分层测试重构之接口层 at 2016年03月03日

    #6 楼 @sigma 可以用 sping 一大特点就是引入 aop 思想,当然也可以自己实现动态委托机制,监控并处理测试方法运行前和运行后的逻辑,获取并处理测试数据。主动权要自己掌握才是王道,个人建议哦

  • 分层测试重构之接口层 at 2016年03月03日

    #3 楼 @sigma 觉得这个问题给了我启发,感觉程序逻辑还不够严谨,回头优化下

  • 分层测试重构之接口层 at 2016年03月03日

    #3 楼 @sigma 我在 HttpRequest 的实现类里面有多个 doPost 和 doGet 的重载方法,其实用哪种方式发请求是由头信息的 contentType 决定的,我文章开头提到过支持 json、xml、x-www-form-urlencoded 等请求参数格式,其中 application/json 就是通知服务器,我是以 json 格式发送的。

  • 分层测试重构之接口层 at 2016年03月03日

    #1 楼 @sigma 一一解答
    1.结果验证支持:普通全匹配、普通包含匹配、正则表达式的全匹配、使用正则表达式的包含匹配,后两者支持正则表达式匹配;
    2.上传文件的请求参数有两部分组成,一个是文件描述的参数,一个是文件路径的描述,配置如下:
    "param": "desc1=aaa&desc2=bbb", --描述部分
    "fileParam": "file=/upload/xxx.txt", --文件路径
    3.报告模块还没做,打算整个分层架构都优化好了统一做,测试数据解析抓取自己实现,可能会用到前端的框架,如 highchart 之类;
    4.我做的是原生的基础框架,可以用 testng、也可以用其他的第三方插件,也可以自定义实现,形式不限;
    5.支持但不限于 Jenkins,CI 平台的环境只要有 jdk 环境即可。

  • #11 楼 @konami1986 难道 appium 无线不行吗?

  • #3 楼 @konami1986 PageFactory 模式,appium driver 也支持的,webdriver 是所有类型 driver 的接口

  • 谢谢分享!

  • 用这个方法试试:https://testerhome.com/topics/4166

  • 自动化测试的困惑 at 2016年02月25日

    #55 楼 @jiangboyang222 当初设计这个框架还未涉足 app 测试,主要基于 web 测试做的,所以分开说吧。
    先说基于 b/s 的 web 的测试,页面是从服务端获取的,UI(展现给用户的页面)都是通过浏览器发送请求>>获取的 response(页面结构)>>加载渲染后呈现给用户。所以在此基础上还可以把广义的 UI 再细分成渲染后展现给用户的纯 UI 和未渲染前的页面结构,后者的就是我所说的 web 层。
    然后再说 app 测试,其类似于 c/s 架构,界面是在客户端生成的,所以渲染后界面和渲染前的层次结构都只能从客户端获取,所以我认为 app 的 UI 层无法细分。虽然从层次结构下手非常类似于前面所说的 web 层,但从我掌握的知识面(本人知识面有限)还需依赖于 appium 等基于 e2e 的框架实现界面之间的跳转才能获取该界面的层次结构。

  • 几年前做过这方面的测试,印象有点模糊了。。。socket 接口中的长连接才有心跳检测,一般在包头里面会有一些描述,例如包头长度、包体长度等,心跳检测包在包头里有标记位区分的。socket 接口不像 http、ws 等接口没有文档靠抓包分析就能测试,必须要按照接口文档,对截取的 16 进制包按每个字段定义的长度进行顺序解码,之后才能验证报文的正确性。当然,也有开发会在日志里面帮你解析成可读懂的内容了,但对于提升测试能力来说并无益处

  • 这种理念如果能保持下去,我想热爱这个行业的人,也愿意捐点钱的支持这个社区的

  • App 自动遍历工具初版 at 2016年02月22日

    #67 楼 @doctorq 关于 ios 的第三方 jar 包,是不是封装了 “po [[UIWindow keyWindow] recursiveDescription]” 的处理?

  • App 自动遍历工具初版 at 2016年02月22日

    #54 楼 @xubin98246 这个针对 android,ios 呢?

  • App 自动遍历工具初版 at 2016年02月22日

    #10 楼 @seveniruby 关于支持新老版本的界面对比,如果不基于 appium(考虑到稳定性欠佳),如何获取界面的 DOM 结构是否有方案?