codeceptjs安装及运行过程(项目实战):

1、box上下载qa-statestreet的项目里的内容到本地,除了node-moudles目录
2、打开终端,进入到本地存放的gui auto项目下,输入命令: npm install
3、捋box里,new folder目录下的chromedriver_wxc文件粘贴到本地项目的目录下
4、安装完成后,输入命合:java -Dwebdriver .chrome.driver=chromedriver_wxc.exe -jar selenium.jar(此命令打开selenium server服务器)
5、浏览器输入网址: http://localhost:4444/wd/hub/static/resource/hub.html(创建session,选择chrome浏览器)
6、cmd执行命今:npx codeceptjs run —steps —reporter mocha-multi(执行脚本)

安装及运行过程中注意事项:
1、确定webdriver版本和chrome版本一致
2、确定selenium的端口正确,且能运行起来
3、执行步骤4时,如果遇到端口被占用的情况
执行命令:netstat -aon|findstr “4444” 查找4444端口是否被占用
tasklist|findstr “16400” 查找占用端口的进程
taskkill /T/F/PID 16400 杀死进程

selenium工作原理:

image.png

  • 当使用 Selenium 启动浏览器时,后台会同时启动基于 WebDriver Wire 协议的 Web Service 作为 Selenium 的 Remote Server(远程服务器),并与浏览器绑定。之后,Remote Server 就开始监听 Client 端的操作请求;
  • 执⾏测试时,测试⽤例会作为 Client 端,将需要执行的⻚面操作请求以 Http Request 的方式发送给 Remote Server。该 Http Request 的body,是以WebDriver Wire协议规定的 JSON 格式来描述需要浏览器执⾏的具体操作;
  • Remote Server 接收到请求后,会对请求进⾏行行解析,并将解析结果发给 WebDriver,由WebDriver 实际执⾏浏览器的操作;
  • WebDriver 可以看做是直接操作浏览器的原⽣生组件(Native Component),所以搭建测试环境时,通常都需要先下载浏览器对应的 WebDriver。

通俗理解:
image.png

session作用:

定义:

  • session在计算机中,尤其是在网络应用中,称为“会话控制”。
  • Session对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的Web页之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。
  • 当用户请求来自应用程序的 Web页时,如果该用户还没有会话,则Web服务器将自动创建一个 Session对象。
  • 当会话过期或被放弃后,服务器将终止该会话。Session 对象最常见的一个用法就是存储用户的首选项。

    HTTP(HyperText Transfer Protocol),即超文本传输协议。协议的状态是指下一次传输可以“记住”这次传输信息的能力,HTTP是不会为了下一次连接而维护这次连接所传输的信息.,所以是无状态协议。

    为什么HTTP协议需要session呢?
    在B\S结构中,存在很多用户连接服务器发送请求的状况,又由于HTTP是无状态协议,那么服务器是如何区别各个用户发送的请求呢?
    当一个用户第一次连接上服务器时,服务器就产生惟一的一个标识ID放入线程池并储存。
    当新的请求发送来时,服务器就与线程池中的ID进行匹配从而达到区别各个用户请求的目的。
    当用户关闭浏览器或与服务器的连接断开时,存放在线程池中的session就取消。