2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
प्रौद्योगिकी ढेर सारांशः : १.
1जावा मूलभूताः (एनकैप्सुलेशन, रिफ्लेक्शन, जेनेरिक्स्, jdbc)
२ विन्याससञ्चिकाविश्लेषणम् (गुणाः) २.
3httpclient (http अनुरोधं प्रेषयन्तु) .
4Fastjson तथा jsonpath दत्तांशं संसाधयन्ति
5testng स्वचालितपरीक्षणरूपरेखायाः प्रमुखबिन्दवः
6allure परीक्षण प्रतिवेदन
सञ्चिका—सेटिंग्स्—मेवेन्
Fastjson तथा jsonpath इत्येतयोः उपयोगः आँकडानां संसाधनार्थं भवति ।
स्वचालनरूपरेखायाः परीक्षणस्य केन्द्रबिन्दुः।
allure test report
fastjson json स्ट्रिंग् तथा json सरणीं संसाधयति
json स्ट्रिंग् इनपुट् पैरामीटर्स् पार्स् कृत्वा अनन्तरं अनुरोधानाम् सज्जतां कुर्वन्तु
<!-https://mvnrepository.com/artifact/com.alibaba/fastjson -->
कॉम.अलिबाबा
fastison
1.2.75
अवतरणं कृत्वा स्वयमेव उत्पन्नं निर्भरतासङ्कुलं द्रष्टुं शक्नुवन्ति ।
यथा, प्रवेशार्थं उपयोक्तृनाम गुप्तशब्दं च आवश्यकम् ।
{“उपयोक्तृनाम”:“qzcsbj”, “गुप्तशब्द”:“123456”}
स्वचालनरूपरेखा आँकडा स्रोतः, निवेशमापदण्डाः सर्वे json स्ट्रिंग् सन्ति, fastjson इत्यस्य उपयोगः आवश्यकः
Class.Method, एषा विधिः स्थिरः अस्ति
संग्रहे प्रत्येकं कीलं String अस्ति
इदानीं परिभाषितं json स्ट्रिंग् पार्स् कृत्वा Map मध्ये स्थापितं अस्ति
json स्ट्रिंग् इत्यस्य सामग्रीं नक्शे स्थापयितुं निर्देशाः
blog.csdnimg.cn/प्रत्यक्ष/ae6feeba2eae442f961df977a6c8eac1.jpeg)
स्वचालनरूपरेखायां आरम्भरूपरेखा अन्तर्भवति, केषाञ्चन अन्तः दत्तांशस्य उपरि कार्याणि आवश्यकानि भवन्ति ।दत्तांशकोशस्य संचालनाय भवद्भिः sql इति लिखितव्यम्
अत्र json सरणी अस्ति ।
[{“sqlNo”:“1”,“sq!”:“उपयोक्तृभ्यः * चयनं कुर्वन्तु यत्र उपयोक्तृनाम='qzcsbj';”},.“sqlNo”:“2”,“sql”:“प्रयोक्तृभ्यः * चयनं कुर्वन्तु यत्र उपयोक्तृनाम ='परीक्षण००५०१';”}]
एषः विधिः न प्रशस्तः
द्वौ पैरामीटर् पारयन्तु, प्रथमः पैरामीटर् विश्लेषणीयः String, द्वितीयः पैरामीटर् च बाइटकोड् सञ्चिका अस्ति ।
समाधानम् अस्ति : प्रथमं पैरामीटर् String इत्येतत् Map मध्ये विश्लेषणं कुर्वन्तु
String sqlNo = (String)sql.get("sqlNo");
प्रत्येकं json स्ट्रिंग् मध्ये सामग्रीं ऑब्जेक्ट् l मध्ये एन्कैप्सुलेट् कुर्वन्तु, entity क्लास् मध्ये get तथा set मेथड् योजयन्तु, तथा च sql इत्यस्य सामग्रीं प्राप्तुं प्रत्यक्षतया object.get इत्येतत् योजयन्तु। स्वचालनम् अपि अस्य एन्कैप्सुलेशनस्य सन्दर्भं ददाति । अर्थात् sql इत्यस्य वस्तुनि समाहितं कर्तुं,
गुणं निजी (sqlNo, sql) इति रूपेण एन्कैप्सुलेटं कुर्वन्तु, get तथा set मेथड्स् प्रदातुं, पैरामीटराइज्ड् निर्माणविधयः, पैरामीटर्रहितनिर्माणविधयः च योजिताः भवेयुः, तथा च रिफ्लेक्शन् पैरामीटर्रहितनिर्माणविधयः समायोजयिष्यति यदि भवान् केवलं पैरामीटर्-सहितं पैरामीटर् लिखति तथा च पैरामीटर्-रहितं कन्स्ट्रक्टर् न लिखति तर्हि स्ट्रिंग्-परिणामं मुद्रयितुं, भवान् toString() मेथड् योजयितुं प्रवृत्तः भविष्यति, अन्यथा ऑब्जेक्ट् इत्यस्य पता The मुद्रितः भविष्यति above entity class इति लिखितम् अस्ति।
पुनः अनुकूलितं कुर्वन्तु
यदि तत्त्वं वस्तुनि समाहितं भवति तर्हि तत् yourself.class इत्यनेन लिखितवर्गे परिवर्तते
तत् sql.class इति
उपरि द्वितीयः विधिः प्रत्येकं एलिमेण्ट् hashMap ऑब्जेक्ट् इत्यस्मिन् एन्कैप्सुलेट् करणीयम्, अत्र च प्रत्येकं एलिमेण्ट् sql ऑब्जेक्ट् इत्यस्मिन् एन्कैप्सुलेट् करणीयम् ।
get मेथड् इत्यस्य उपयोगेन प्रत्यक्षतया वस्तुतः विशेषताः प्राप्नुवन्तु
एषा पद्धतिः अधिका सुलभा अस्ति, अनेकानि कीलानि प्राप्तुं आवश्यकता नास्ति ।
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>mavenProject</groupId>
<artifactId>mavenProject</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.75</version>
</dependency>
</dependencies>
</project>
sql वर्ग
package com.zhou.demo;
public class Sql {
private String sql;
private String sqlNo;
public Sql() {
}
public Sql(String sql) {
this.sql = sql;
}
public Sql(String sql, String sqlNo) {
this.sql = sql;
this.sqlNo = sqlNo;
}
public void setSql(String sql) {
this.sql = sql;
}
public void setSqlNo(String sqlNo) {
this.sqlNo = sqlNo;
}
public String getSql() {
return sql;
}
public String getSqlNo() {
return sqlNo;
}
@Override
public String toString() {
return "sql{" +
"sql='" + sql + ''' +
", sqlNo='" + sqlNo + ''' +
'}';
}
}
package com.zhou.demo;
import com.alibaba.fastjson.JSONObject;
import java.util.HashMap;
import java.util.Set;
//需求:将json字符串转化成map,字符串:{"username":"qzcsbj", "password":"123456"}
public class Test {
public static void main(String[] args) {
String parameters="{"username":"qzcsbj", "password":"123456"}";
//先解析为JSONObject,然后转换为map
HashMap<String, String> map = new HashMap<String, String>();
// 解析json格式字符串为JSONObject(JSONObject是Map接口的一个实现类,和HashMap平级)
JSONObject jsonObject = JSONObject.parseObject(parameters);
// 将JSO\\\ NObject转换为map,先获取keys,先将keyset获取,集合里的每一个key都是String,通过遍历的key获取value,再放到map中
Set<String> keys= jsonObject.keySet();
for (String key:keys) {
map.put(key,jsonObject.getString(key));
}
//验证,获取Map中的key
Set<String> keys2 = map.keySet();
for (String key :keys2) {
System.out.println(key+"="+map.get(key));
}
}
}
package com.zhou.demo;
import com.alibaba.fastjson.JSONObject;
import java.util.HashMap;
import java.util.List;
//JSON数组,每个元素是json字符串
public class Test02 {
public static void main(String[] args) {
String initsql="[n" + "{"sqlNo":"1","sql":"select * from users where username='qzcsbj';"},n" +
"{"sqlNo":"2","sql":"select * from users where username='tester00501';"}n" + "n" + "]";
/* //元素解析为Map
List<HashMap> sqls = JSONObject.parseArray(initsql,HashMap.class);
for (HashMap sql:sqls) {
System.out.println(sql);
String sqlNo = (String)sql.get("sqlNo");
String sql_ = (String)sql.get("sql");
System.out.println("sqlNo-"+sqlNo+",sql_-"+sql_);
}*/
//元素封装到对象
List<Sql> sqls = JSONObject.parseArray(initsql, Sql.class);
for (Sql sql:sqls) {
String sqlNo = sql.getSqlNo();
String sql_ = sql.getSql();
System.out.println("sqlNo-"+",sql_"+sql_);
}
}
}
यतः सम्प्रति परियोजना अग्रे पृष्ठतः च पृथक् कृता अस्ति ।
पृष्ठभागः सामान्यतया json स्ट्रिंग् प्रत्यागच्छति
यदि भवान् प्रतिपादनं कर्तुम् इच्छति तर्हि प्रायः json इत्यस्य विश्लेषणं कृत्वा प्रायः केवलं कीलक्षेत्रेषु प्रतिपादनं करोति ।
प्रतिपादनं सामान्यतया कोड + प्रमुखव्यापारक्षेत्राणि भवन्ति
इदं json स्ट्रिंग् अस्ति, अतः भवद्भिः jsonpath इत्यस्य उपयोगः आवश्यकः
blog.csdnimg.cn/5bdd9defd7db47b7a5934f79f9fd0ceb.png)
आश्रयाः अवतरणं कृतम् अस्ति वा इति पुष्टयितुं आवश्यकता अस्ति
अत्र अयं चरः सफलप्रवेशानन्तरं प्रत्यागतं प्रतिक्रियाक्षेत्रम् अस्ति ।
blog.csdnimg.cn/a20e89ee243c43f69a1b4e1c3a97b89b.png)
परिभाषितक्षेत्रप्रतिक्रियायां उत्तीर्णं कुर्वन्तु
आश्रितदत्तांशसंसाधनार्थं अन्तरफलकस्वचालनम्
अस्याः रेखायाः अग्रेतः टोकनं प्राप्नुवन्तु, यत् अपि $ अस्ति ।
तत् प्राप्त्वा यदि वैश्विकचरम् अस्ति तर्हि वैश्विकचरमध्ये रक्षितुं शक्यते ।
यदि भवन्तः प्रतिपादनं प्राप्तुम् इच्छन्ति ततः प्राप्तुम् इच्छन्ति
अन्यत् प्रतिपादनं कुरुत
स्वचालनरूपरेखायां, अनुरोधाः कोडलेखनेन प्रेष्यन्ते, यस्य अर्थः अस्ति यत् सर्वरेण सह अन्तरक्रियायै जावाद्वारा प्रदत्तस्य पुस्तकालयस्य httpclient इत्यस्य उपयोगः आवश्यकः ।
id उत्तीर्णं कर्तुं आवश्यकता अस्ति
पुस्तकालयात् वयं id 259 इति द्रष्टुं शक्नुमः
दत्तांशसञ्चिकायां, पैरामीटर्स् सर्वे json स्ट्रिंग् इत्यत्र संयोजिताः सन्ति, अतः id=259 इत्यपि json स्ट्रिंग् इत्यत्र संयोजितम् अस्ति ।
अत्र स्वयमेव तस्मात् पलायनार्थं २५९ द्विगुण उद्धरणं स्थापयन्तु ।
अनुरोधं प्राप्नुत: http://47.108.153.47:18089/qzcsbj/user/findById?id=259
?पश्चात् प्रत्यक्षतया पैरामीटर्स् स्प्लिस कुर्वन्तु
विचारणीयानि बहुमूल्यानि अपि सन्ति: http://47.108.153.47:18089/qzcsbj/user/findById?id=259&name=jack
उपर्युक्तं get अनुरोधं प्रेषयितुं पैरामीटर् url तथा पैरामीटर्स् संयोजयिष्यति ।
url इतीदं पारयन्तु
अत्र भवन्तः httpget request ऑब्जेक्ट् प्राप्नुवन्ति
CloseableHttpClient अमूर्तवर्गः HttpClient, Closeable इति अन्तरफलकं कार्यान्वयति
बहुरूपतायाः उपयोगः कर्तुं शक्यते, उपवर्गस्य वस्तु च मातापितृवर्गसन्दर्भं (मातृपितृवर्गेण कार्यान्वितं अन्तरफलकं) सूचयति ।
परिणामः res इति उपरि परिभाषितः अस्ति
वर्तमाने
http://47.108.153.47:18089/qzcsbj/उपयोक्ता/प्रवेशः
url, अनुरोधमापदण्डाः, अनुरोधशीर्षकाः च
एते मापदण्डाः स्वचालनरूपरेखायां दत्तांशसञ्चिकाभ्यः प्राप्यन्ते ।
रेस परिभाषयतु
return res
url उत्तीर्णं कुर्वन्तु
यदि भवान् कन्स्ट्रक्टर् पश्यति तर्हि String इत्येतत् पारयित्वा द्वितीयं कन्स्ट्रक्टर् निर्दिष्टुं शक्नोति ।
उपरिष्टात् प्रेषितः पोस्ट् अनुरोधः अस्ति: अनुरोधशीर्षकं प्रेषितव्यं च दत्तांशं च सर्वं परिभाषितम् अस्ति ।
उपवर्गस्य वस्तु मातापितृवर्गसन्दर्भं प्रति सूचयति