第九期_selenium 实战_20190619

雪球实战

测试策略

  • 核心业务自动化
  • 接口测试是否可以保证,如果可以,ui测试可以适当的弱化
  • 设计用户交互的重要功能,你仍然需要使用UI自动化测试保证

PO封装

  • 同一个页面,也可以使用不同的PO,类似PyPOM里的region
  • 导航
  • 子界面或者子div的业务封装

Log优化

2019-06-19 20:56:29

import logging

class BaseTestCase(object):
    logging.basicConfig()
    _log=logging.getLogger("xueqiu")
    _log.setLevel(logging.DEBUG)

    @property
    def log(self):
        return self._log

2019-06-19 21:09:27

用例设计

注册问题

  • 注册最大的难点不是自动化,其实是数据准备。
  • 使用mock中心,解除数据依赖,推荐办法
  • 不断注册新用户,借助于运营部门批量删除测试帐号
  • 完全使用测试环境,在测试环境中提供删除用户的相关接口

登录问题

  • 验证码 ocr可行,但是不稳定,而且不是正确的方向
  • 提高可测性,使用万能验证码,需要研发配合
  • 绕过登陆直接使用cookie,就可以只需要登录一次,每次自动化都可以复用,一直持续到你退出登录cookie失效。一般是1个月才会变一次的。
  • 使用微博、qq等第三方登录

cookie数据

curl 'https://xueqiu.com/setting/user' -H 'Connection: keep-alive' -H 'Pragma: no-cache' -H 'Cache-Control: no-cache' -H 'Upgrade-Insecure-Requests: 1' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3' -H 'Referer: https://xueqiu.com/center/' -H 'Accept-Encoding: gzip, deflate, br' -H 'Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7' -H 'Cookie: XXXXXX' --compressed

作业

发帖功能封装,只把核心的Page封装、测试用例,断言相关的2个类的代码直接贴上来。