informasi kontak saya
Surat[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Ringkasan tumpukan teknologi:
①Dasar-dasar Java (enkapsulasi, refleksi, generik, jdbc)
②Analisis file konfigurasi (properti)
③httpclient (kirim permintaan http)
④Fastjson dan jsonpath memproses data
⑤Poin-poin penting dalam pengujian kerangka pengujian otomatis
⑥laporan pengujian daya tarik
File—pengaturan—maven
Fastjson dan jsonpath keduanya digunakan untuk memproses data.
Fokus pengujian kerangka otomasi.
laporan uji daya tarik
fastjson memproses string json dan array json
Parsing parameter input string json dan persiapkan untuk permintaan berikutnya
<!-https://mvnrepository.com/artifact/com.alibaba/fastjson -->
com.alibaba
cepat
1.2.75
Setelah mengunduh, Anda dapat melihat paket ketergantungan yang dibuat secara otomatis.
Misalnya, login memerlukan nama pengguna dan kata sandi.
{“nama pengguna”:“qzcsbj”, “kata sandi”:“123456”}
Sumber data kerangka otomatisasi, parameter input semuanya string json, fastjson perlu digunakan
Kelas.Metode, metode ini statis
Setiap kunci dalam koleksi adalah String
String json yang sekarang ditentukan telah diuraikan dan ditempatkan di Peta
Instruksi untuk memasukkan konten string json ke dalam peta
(http://blog.csdnimg.cn/direct/ae6feeba2eae442f961df977a6c8eac1.jpeg)
Kerangka otomatisasi melibatkan kerangka inisialisasi, dan beberapa memerlukan operasi pada data di dalamnya.Untuk mengoperasikan database, Anda perlu menulis sql
Berikut adalah array json. Dalam array, setiap elemen adalah string json, yang berisi data nilai kunci.
[{“sqlNo”:“1”,“sq!”:“pilih * dari pengguna di mana nama pengguna='qzcsbj';”},.“sqlNo”:“2”,“sql”:“pilih * dari pengguna di mana nama pengguna='test00501';”}]
Cara ini tidak disarankan
Lewati dua parameter, parameter pertama adalah String yang akan diurai, dan parameter kedua adalah file bytecode.
Solusinya adalah: parsing parameter pertama String ke dalam Map
String sqlNo = (String)sql.get("sqlNo");
Enkapsulasi konten di setiap string json ke dalam objek l, tambahkan metode get dan set ke kelas entitas, langsung objek.get, dan dapatkan konten sql. Prompt kode semacam ini juga lebih nyaman untuk ditulis. Otomatisasi juga merujuk pada enkapsulasi ini. Yaitu untuk merangkum sql menjadi suatu objek,
Enkapsulasi properti sebagai pribadi (sqlNo, sql), sediakan metode get dan set, konstruktor berparameter, dan konstruktor tanpa parameter harus ditambahkan, dan refleksi akan menyesuaikan konstruktor tanpa parameter. Jika Anda hanya menulis konstruktor bebas parameter tanpa menulis konstruktor bebas parameter, kesalahan pasti akan dilaporkan. Untuk mencetak hasil string, Anda perlu menambahkan metode toString(), jika tidak, alamat objek akan dicetak. Kelas entitas di atas telah ditulis.
Optimalkan lagi
Jika elemen dienkapsulasi menjadi sebuah objek, maka diubah menjadi kelas yang ditulis oleh Anda sendiri.kelas
Itu adalah sql.kelas
Cara kedua di atas adalah dengan mengenkapsulasi setiap elemen menjadi objek hashMap, dan di sini adalah mengenkapsulasi setiap elemen menjadi objek sql.
Dapatkan atribut dari objek secara langsung menggunakan metode get
Cara ini lebih nyaman dan tidak perlu mendapatkan banyak kunci.
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>
kelas 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_);
}
}
}
Karena saat ini proyeknya terpisah antara bagian depan dan belakang.
Backend umumnya mengembalikan string json
Jika Anda ingin membuat pernyataan, Anda biasanya mengurai json. Setelah parsing, Anda biasanya hanya membuat pernyataan pada kolom kunci.
Pernyataan umumnya berupa kode + bidang bisnis utama
Ini adalah string json, jadi Anda perlu menggunakan jsonpath
(blog.csdnimg.cn/5bdd9defd7db47b7a5934f79f9fd0ceb.png)
Perlu mengonfirmasi apakah dependensi telah diunduh
Variabel ini di sini adalah kolom respons yang dikembalikan setelah login berhasil.
(blog.csdnimg.cn/a20e89ee243c43f69a1b4e1c3a97b89b.png)
Berikan respons bidang yang ditentukan
Otomatisasi antarmuka untuk memproses data yang bergantung
Dapatkan token dari depan baris ini, yang juga $.
Setelah didapat, jika berupa variabel global maka dapat disimpan ke variabel global.
Jika Anda ingin mendapatkan penegasan dan kemudian mendapatkannya
Buatlah pernyataan lain
Dalam kerangka otomatisasi, permintaan dikirim dengan menulis kode, yang berarti Anda perlu menggunakan httpclient, perpustakaan yang disediakan oleh Java untuk berinteraksi dengan server.
Harus melewati id
Dari perpustakaan, kita dapat melihat bahwa idnya adalah 259
Dalam file data, semua parameter digabungkan menjadi string json, jadi id=259 juga digabungkan menjadi string json.
Di sini, masukkan 259 dalam tanda kutip ganda untuk menghindarinya secara otomatis.
dapatkan permintaan: http://47.108.153.47:18089/qzcsbj/user/findById?id=259
?Parameter sambungan langsung nanti
Ada juga beberapa nilai yang perlu dipertimbangkan: http://47.108.153.47:18089/qzcsbj/user/findById?id=259&name=jack
Di atas akan menggabungkan parameter url dan parameter untuk mengirim permintaan get. Setelah pembuatan, Anda perlu membuat objek permintaan get.
Masukkan urlnya
Di sini Anda mendapatkan objek permintaan httpget
Kelas abstrak CloseableHttpClient mengimplementasikan antarmuka HttpClient, Closeable
Polimorfisme dapat digunakan, dan objek subkelas menunjuk ke referensi kelas induk (antarmuka yang diimplementasikan oleh kelas induk)
Hasil res didefinisikan di atas
Sekarang
http://47.108.153.47:18089/qzcsbj/pengguna/masuk
url, parameter parameter permintaan, header permintaan
Parameter ini diperoleh dari file data dalam kerangka otomatisasi.
Tentukan res
kembali res
Lewati url
Jika Anda melihat konstruktornya, Anda dapat meneruskan String dan menentukan konstruktor kedua.
Di atas adalah permintaan posting yang dikirim: header permintaan dan data yang akan dikirim semuanya sudah ditentukan.
Objek subkelas menunjuk ke referensi kelas induk